#include <stdio.h>
int gat[500002], roz[500002];
int n,k,r;
void czytaj(void)
{
int i,a;
scanf("%d %d\n",&n,&k);
for(i=1;i<=n;++i)
{
scanf("%d",&a);
if(gat[a]==0) {gat[a]=1; r++;}
roz[i]=r;
}
return;
}
int main()
{
int i,j,a;
long long int W=0;
czytaj();
if(r<k) {printf("-1\n"); return 0;}
j=0; //pierwsze miejsce wystapienia i roznych gatunkow
for(i=1;i<=k;++i)
{
while(roz[j]<i) j++;
W+=(j-i);
}
printf("%lld\n",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 41 42 | #include <stdio.h> int gat[500002], roz[500002]; int n,k,r; void czytaj(void) { int i,a; scanf("%d %d\n",&n,&k); for(i=1;i<=n;++i) { scanf("%d",&a); if(gat[a]==0) {gat[a]=1; r++;} roz[i]=r; } return; } int main() { int i,j,a; long long int W=0; czytaj(); if(r<k) {printf("-1\n"); return 0;} j=0; //pierwsze miejsce wystapienia i roznych gatunkow for(i=1;i<=k;++i) { while(roz[j]<i) j++; W+=(j-i); } printf("%lld\n",W); return 0; } |
English