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
#include <iostream>

using namespace std;

int main() {
	ios_base::sync_with_stdio(false);
	int n, k;
	cin >> n >> k;

	int kub[1000000];
	for (int i = 0; i < 1000000; i++) {
		kub[i] = 0;
	}
  int ileJest = 0; // O(n)
	int ileDoWymiany = 0; // O(n)
	long long res = 0; // To wydaje się że może rosnąć do kwadratu ale chyba maksymalnie to w granicach 2n
	for (int i = 0; i < n; i++) {
		int a;
		cin >> a;
		if (kub[a]++ != 0) {
			ileDoWymiany++;
		} else {
			res += ileDoWymiany;
			ileJest++;
		}
		if (ileJest >= k) {
			cout << res << "\n";
			return 0;
		}
	}
	cout << "-1\n";
	return 0;
}