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