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
#include <iostream>
using namespace std;

const int MAXN = 5 * 100000 + 7;
int tab[MAXN];
bool wyst[MAXN];

int main()
{
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	int n, k; cin>>n>>k;
	for(int i = 0; i < n; i++) cin>>tab[i];
	int l = 1;
	int i = 1;
	wyst[tab[0]] = true;
	while(i < n && l < k && !wyst[tab[i]])
	{
		wyst[tab[i]] = true;
		l++; i++;
	}
	int spos = 0;
	while(i < n && l < k)
	{
		if(!wyst[tab[i]])
		{
			wyst[tab[i]] = true;
			spos += i - l;
			l++;
		}
		i++;
	}
	cout<<(l == k ? spos : -1)<<'\n';
	return 0;
}