#include <bits/stdc++.h> using namespace std; typedef long long lld; constexpr int MAX = 1 << 19; bitset<MAX> t; lld n, k, m = 0, a, res = 0; int main(){ scanf("%lld%lld", &n, &k); for(lld i = 0; i < n; ++i) { scanf("%lld", &a); if (t[a] == 0) { t[a] = 1; res += (i - m); ++m; } if (m == k){ printf("%lld\n", res); return 0; } } puts("-1"); 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 | #include <bits/stdc++.h> using namespace std; typedef long long lld; constexpr int MAX = 1 << 19; bitset<MAX> t; lld n, k, m = 0, a, res = 0; int main(){ scanf("%lld%lld", &n, &k); for(lld i = 0; i < n; ++i) { scanf("%lld", &a); if (t[a] == 0) { t[a] = 1; res += (i - m); ++m; } if (m == k){ printf("%lld\n", res); return 0; } } puts("-1"); return 0; } |