#include <bits/stdc++.h>
using namespace std;
int n, k;
bitset<500500> used;
int main() {
scanf("%d %d", &n, &k);
int fill = 0;
int a;
long long wyn = 0;
for (int i = 0; i < n; i++) {
scanf("%d", &a);
if (used[a]) continue;
used[a] = 1;
wyn += (long long) i - fill;
fill++;
if (fill == k) break;
}
if (fill < k) printf("-1\n");
else printf("%lld\n", wyn);
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 <bits/stdc++.h> using namespace std; int n, k; bitset<500500> used; int main() { scanf("%d %d", &n, &k); int fill = 0; int a; long long wyn = 0; for (int i = 0; i < n; i++) { scanf("%d", &a); if (used[a]) continue; used[a] = 1; wyn += (long long) i - fill; fill++; if (fill == k) break; } if (fill < k) printf("-1\n"); else printf("%lld\n", wyn); return 0; } |
English