#include <iostream> using namespace std; int main(){ int n,k; cin >> n >> k ; int tabNumb[n];int brands[n]; int brandsC = 0 ; for(int i = 0; i != n ;i++){ cin >> tabNumb[i]; bool same = false; for(int a = 0; a != i ; a++){ if(tabNumb[i] == tabNumb[a]){ same = true ; } } if (same == false) { brandsC ++ ; brands[brandsC-1] = tabNumb[i]; } } if(k > brandsC || n < k ){ cout << "-1" << endl; return(0); } int saved[k]; int savedC = 1; int operation = 0; saved[0] = tabNumb[0]; for(int a = 0 ; a != k-1; a++){ while(true){ bool isSaved = false; for(int b = 0 ; b != savedC ;b++){ if(tabNumb[a+1] == saved[b]){ isSaved = true; } } if(isSaved == true){ int z = a+1; bool nextSaved = true; while(nextSaved == true){ for(int b = 0 ; b != savedC ;b++){ if(tabNumb[z+1] == saved[b] ){ z++; }else { nextSaved = false; } } } int temp = tabNumb[z]; tabNumb[z] = tabNumb[z+1]; tabNumb[z+1] = temp; operation++; } else { savedC++; saved[savedC]= tabNumb[a+1]; break; } } } cout << operation <<endl ; }
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 | #include <iostream> using namespace std; int main(){ int n,k; cin >> n >> k ; int tabNumb[n];int brands[n]; int brandsC = 0 ; for(int i = 0; i != n ;i++){ cin >> tabNumb[i]; bool same = false; for(int a = 0; a != i ; a++){ if(tabNumb[i] == tabNumb[a]){ same = true ; } } if (same == false) { brandsC ++ ; brands[brandsC-1] = tabNumb[i]; } } if(k > brandsC || n < k ){ cout << "-1" << endl; return(0); } int saved[k]; int savedC = 1; int operation = 0; saved[0] = tabNumb[0]; for(int a = 0 ; a != k-1; a++){ while(true){ bool isSaved = false; for(int b = 0 ; b != savedC ;b++){ if(tabNumb[a+1] == saved[b]){ isSaved = true; } } if(isSaved == true){ int z = a+1; bool nextSaved = true; while(nextSaved == true){ for(int b = 0 ; b != savedC ;b++){ if(tabNumb[z+1] == saved[b] ){ z++; }else { nextSaved = false; } } } int temp = tabNumb[z]; tabNumb[z] = tabNumb[z+1]; tabNumb[z+1] = temp; operation++; } else { savedC++; saved[savedC]= tabNumb[a+1]; break; } } } cout << operation <<endl ; } |