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