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