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
#include <bits/stdc++.h>
#include <unordered_map>
using namespace std;
#define in istream_iterator<int>(cin)
int main()
{
	int n = *in, k = *in;
	vector <int> o(n);
	copy_n(in, n, o.begin());
	unordered_map<int, bool>m;
	vector <bool> b(n);
	for (int i = 0; i < n; i++)if (!m[o[i]])
	{
		m[o[i]] = true;
		b[i] = true;
	}
	int j = k, res = 0, rc = 0;
	for (int i = 0; i < k; i++)if (!b[i])
	{
		res += k - i;
		rc++;
	}
	for (int i = k; i < n && rc; i++)if (b[i])
	{
		res += i - k;
		rc--;
	}
	if (rc)cout << "-1\n"; else cout << res << '\n';
	return 0;
}