#include<cstdio>
#include<cmath>
#include<set>
using namespace std;
int main(){
int n,k,o, to_shift=0, result=0, last_unique=0;
scanf("%d %d", &n, &k);
set<int> unikalne = set<int>();
pair<set<int>::iterator,bool> ret;
for( int i = 0; i <n; i++){
if(k==0)
break;
scanf("%d", &o);
ret = unikalne.insert(o);
if (ret.second==false){
to_shift++;
result +=i;
} else{
k--;
last_unique = i;
}
}
if (k > 0){
printf("-1");
return 0;
}
result = to_shift * last_unique - result - (to_shift - 1) * to_shift / 2;
printf("%d", result);
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 | #include<cstdio> #include<cmath> #include<set> using namespace std; int main(){ int n,k,o, to_shift=0, result=0, last_unique=0; scanf("%d %d", &n, &k); set<int> unikalne = set<int>(); pair<set<int>::iterator,bool> ret; for( int i = 0; i <n; i++){ if(k==0) break; scanf("%d", &o); ret = unikalne.insert(o); if (ret.second==false){ to_shift++; result +=i; } else{ k--; last_unique = i; } } if (k > 0){ printf("-1"); return 0; } result = to_shift * last_unique - result - (to_shift - 1) * to_shift / 2; printf("%d", result); return 0; } |
English