#include <cstdio>
int t[500005],tc[500005],r[500005];
int main(){
int n,k,i,j;
long long w=0;
scanf("%d%d",&n,&k);
for(i=0;i<n;i++){
scanf("%d",&t[i]);
r[i]=0;
}
r[n]=0;
for(i=0;i<n;i++){
tc[i]=r[t[i]];
// printf("%d, ",tc[i]);
r[t[i]]=1;
}
j=k;
for(i=0;i<k;i++){
if(tc[i] != 0){
// printf("==0\n");
while(j<n && tc[j]!=0)j++;
if(j>=n){
printf("%d",-1);
return 0;
}
else{
w=w+j-i;
j++;
}
}
else{
// printf("==1\n");
}
}
printf("%lld",w);
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 | #include <cstdio> int t[500005],tc[500005],r[500005]; int main(){ int n,k,i,j; long long w=0; scanf("%d%d",&n,&k); for(i=0;i<n;i++){ scanf("%d",&t[i]); r[i]=0; } r[n]=0; for(i=0;i<n;i++){ tc[i]=r[t[i]]; // printf("%d, ",tc[i]); r[t[i]]=1; } j=k; for(i=0;i<k;i++){ if(tc[i] != 0){ // printf("==0\n"); while(j<n && tc[j]!=0)j++; if(j>=n){ printf("%d",-1); return 0; } else{ w=w+j-i; j++; } } else{ // printf("==1\n"); } } printf("%lld",w); return 0; } |
English