#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; } |