#include <cstdio>
constexpr int N = 5 * 100 * 1000 + 1;
bool bottles[N];
int main() {
long long n, k, bottle, to_move = 0, correct_left = 0, result = 0;
scanf("%lld%lld", &n, &k);
for (int i = 0; i < n; ++i) {
scanf("%lld", &bottle);
if (bottles[bottle]) {
to_move++;
} else {
bottles[bottle] = true;
result += to_move;
correct_left++;
if (correct_left == k) {
printf("%lld\n", result);
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 | #include <cstdio> constexpr int N = 5 * 100 * 1000 + 1; bool bottles[N]; int main() { long long n, k, bottle, to_move = 0, correct_left = 0, result = 0; scanf("%lld%lld", &n, &k); for (int i = 0; i < n; ++i) { scanf("%lld", &bottle); if (bottles[bottle]) { to_move++; } else { bottles[bottle] = true; result += to_move; correct_left++; if (correct_left == k) { printf("%lld\n", result); return 0; } } } printf("-1\n"); return 0; } |
English