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