#include <iostream>
using namespace std;
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int n, k, liczba_roznych_butelek=0, wynik=0;
cin >> n >> k;
bool sprawdzanie[n+1], numerki[n+1];
int tablica[n+1];
tablica[0]=0;
int liczba_roznych_butelek_do_tab_k=0;
for (int h=0; h<=n; h++)
{
sprawdzanie[h]=false;
numerki[h]=false;
}
for (int i=1; i<=n; i++)
{
cin >> tablica[i];
if (sprawdzanie[tablica[i]]==false)
{
if (i<=k)
liczba_roznych_butelek_do_tab_k++;
liczba_roznych_butelek++;
sprawdzanie[tablica[i]]=true;
numerki[i]=true;
}
}
//cout << liczba_roznych_butelek << " Wszystkie rozne\n" << liczba_roznych_butelek_do_tab_k << " Do k\n";
if (liczba_roznych_butelek<k)
cout << -1;
else
{
/*bool sprawdzacz[n+1],
for (int g=0; g<=n; g++)
sprawdzacz[g]=false;
for (int j=1; j<=k; j++)
{
if (sprawdzacz[tablica[j]]==false)
{
liczba_roznych_butelek_do_tab_k++;
sprawdzacz[tablica[j]]=true;
}
}*/
//for (int i=1; i<=n; i++)
// cout << numerki[i] << " ";
int zliczacz=0;
for (int z=1; z<=n; z++)
{
if (numerki[z]==1)
{
zliczacz++;
if (zliczacz!=z)
{
int a=1;
while (numerki[a]==1)
a++;
wynik+=z-a;
numerki[a]=1;
numerki[z]=0;
}
if (zliczacz==k)
z=n+1;
}
}
cout << wynik;
/*for (int z=k+1; z<=n; z++)
{
if (sprawdzacz[tablica[z]]==false)
{
}
}*/
}
return 0;
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 | #include <iostream> using namespace std; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n, k, liczba_roznych_butelek=0, wynik=0; cin >> n >> k; bool sprawdzanie[n+1], numerki[n+1]; int tablica[n+1]; tablica[0]=0; int liczba_roznych_butelek_do_tab_k=0; for (int h=0; h<=n; h++) { sprawdzanie[h]=false; numerki[h]=false; } for (int i=1; i<=n; i++) { cin >> tablica[i]; if (sprawdzanie[tablica[i]]==false) { if (i<=k) liczba_roznych_butelek_do_tab_k++; liczba_roznych_butelek++; sprawdzanie[tablica[i]]=true; numerki[i]=true; } } //cout << liczba_roznych_butelek << " Wszystkie rozne\n" << liczba_roznych_butelek_do_tab_k << " Do k\n"; if (liczba_roznych_butelek<k) cout << -1; else { /*bool sprawdzacz[n+1], for (int g=0; g<=n; g++) sprawdzacz[g]=false; for (int j=1; j<=k; j++) { if (sprawdzacz[tablica[j]]==false) { liczba_roznych_butelek_do_tab_k++; sprawdzacz[tablica[j]]=true; } }*/ //for (int i=1; i<=n; i++) // cout << numerki[i] << " "; int zliczacz=0; for (int z=1; z<=n; z++) { if (numerki[z]==1) { zliczacz++; if (zliczacz!=z) { int a=1; while (numerki[a]==1) a++; wynik+=z-a; numerki[a]=1; numerki[z]=0; } if (zliczacz==k) z=n+1; } } cout << wynik; /*for (int z=k+1; z<=n; z++) { if (sprawdzacz[tablica[z]]==false) { } }*/ } return 0; } |
English