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