#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; } |