#include <iostream> using namespace std; int main() { int n, k, w=0; bool wynik=1; cin>>n>>k; int tab[n+1]; int tab2[n+1]; for(int i=0; i<n; i++) { tab2[i]=0; cin>>tab[i]; } tab[n]=n; tab2[n]=0; for(int i=0; i<k && wynik; i++) { if(tab2[tab[i]]) { int j=i+1; while(tab2[tab[j]]) j++; if(j==n) wynik=false; else { int tmp = tab[j]; w+=j-i; for(int k=j; k>i; k--) tab[k]=tab[k-1]; tab[i]=tmp; } } else tab2[tab[i]]=1; } if(wynik) cout<<w; else cout<<"-1"; 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 | #include <iostream> using namespace std; int main() { int n, k, w=0; bool wynik=1; cin>>n>>k; int tab[n+1]; int tab2[n+1]; for(int i=0; i<n; i++) { tab2[i]=0; cin>>tab[i]; } tab[n]=n; tab2[n]=0; for(int i=0; i<k && wynik; i++) { if(tab2[tab[i]]) { int j=i+1; while(tab2[tab[j]]) j++; if(j==n) wynik=false; else { int tmp = tab[j]; w+=j-i; for(int k=j; k>i; k--) tab[k]=tab[k-1]; tab[i]=tmp; } } else tab2[tab[i]]=1; } if(wynik) cout<<w; else cout<<"-1"; return 0; } |