#include <cstdio>
const int max_n = 500100;
int n, k;
int seen[max_n];
int main() {
scanf("%d %d", &n, &k);
for (int i = 0; i < n; ++i) seen[i] = 0;
int non_unique = 0;
int unique = 0;
long long cost = 0;
for (int i = 0; i < n; ++i) {
int a = 0;
scanf("%d", &a);
--a;
if (seen[a] == 0) {
cost += non_unique;
++unique;
seen[a] = 1;
} else {
++non_unique;
}
if (unique == k) {
printf("%lld\n", cost);
return 0;
}
}
printf("-1\n");
return 0;
}
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 | #include <cstdio> const int max_n = 500100; int n, k; int seen[max_n]; int main() { scanf("%d %d", &n, &k); for (int i = 0; i < n; ++i) seen[i] = 0; int non_unique = 0; int unique = 0; long long cost = 0; for (int i = 0; i < n; ++i) { int a = 0; scanf("%d", &a); --a; if (seen[a] == 0) { cost += non_unique; ++unique; seen[a] = 1; } else { ++non_unique; } if (unique == k) { printf("%lld\n", cost); return 0; } } printf("-1\n"); return 0; } |
English