#include <bits/stdc++.h>
using namespace std;
bitset<500007> unq;
int unqs[500007];
int unqs_c=0;
unsigned long long res = 0;
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
int n, k, a, j;
cin >> n >> k;
for(int i = 0; i < n; i++) {
cin >> a;
if (!unq[a]) {
//cout << a << " is unq" << endl;
unqs[unqs_c] = i;
//cout << unqs[unqs_c] << " " << i << endl;
unqs_c++;
unq[a] = true;
}
}
if (unqs_c < k) {
cout << "-1";
return 0;
}
/*
for(int i = 0; i < unqs_c; i++) {
cout << unqs[i] << " ";
}
*/
j=0;
for(int i = 0; i < k; i++) {
res += unqs[i]-i;
}
cout << res << endl;
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 32 33 34 35 36 37 38 39 40 | #include <bits/stdc++.h> using namespace std; bitset<500007> unq; int unqs[500007]; int unqs_c=0; unsigned long long res = 0; int main() { ios_base::sync_with_stdio(0); cin.tie(0); int n, k, a, j; cin >> n >> k; for(int i = 0; i < n; i++) { cin >> a; if (!unq[a]) { //cout << a << " is unq" << endl; unqs[unqs_c] = i; //cout << unqs[unqs_c] << " " << i << endl; unqs_c++; unq[a] = true; } } if (unqs_c < k) { cout << "-1"; return 0; } /* for(int i = 0; i < unqs_c; i++) { cout << unqs[i] << " "; } */ j=0; for(int i = 0; i < k; i++) { res += unqs[i]-i; } cout << res << endl; return 0; } |
English