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
43
44
45
46
47
48
49
50
51
52
53
54
55
#include <bits/stdc++.h>
using namespace std;
int tab[5000006], ile[5000005];
vector <int> dowymiany;
int main()
{
	int n, k, ilr=0;
	scanf("%d%d", &n, &k);
	for(int i=1; i<=n; i++)
	{
		scanf("%d", &tab[i]);
		if(ile[tab[i]]==0)
		{
			ilr++;
			ile[tab[i]]++;
		}
	}
	if(ilr < k)
	{
		printf("-1");
		return 0;
	}	
	for(int i=1; i<=n; i++)
	{
			ile[tab[i]]=0;
	}
	ilr=0;
	for(int i=1; i<=k; i++)
	{
		if(ile[tab[i]]==0)
		{
			ile[tab[i]]=1;
			ilr++;
		}
		else
		{
			dowymiany.push_back(i);
		}
	}
	int g=k+1, id = dowymiany.size()-1;
	long long przes=0;
	while(ilr < k)
	{
		if(ile[tab[g]]==0)
		{
			ile[tab[g]]=1;
			ilr++;
			przes += (long long) (g - dowymiany[id]);
			id--;
		}
		g++;
	}
	printf("%lld", przes);
	return 0;
}