#include <iostream>
#include <set>
#include <vector>
int main() {
using namespace std;
using ll = long long;
ll n, k, c = 0, result = 0;
cin >> n >> k;
vector<int> A(n);
for(int i = 0; i < n; i++) cin >> A[i];
set<int> B;
for(int i = 0; i < n && B.size() < k; i++) {
if(B.find(A[i]) == B.end()) {
B.insert(A[i]);
result += c;
} else {
c += 1;
}
}
cout << (B.size() == k ? result : -1) << std::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 | #include <iostream> #include <set> #include <vector> int main() { using namespace std; using ll = long long; ll n, k, c = 0, result = 0; cin >> n >> k; vector<int> A(n); for(int i = 0; i < n; i++) cin >> A[i]; set<int> B; for(int i = 0; i < n && B.size() < k; i++) { if(B.find(A[i]) == B.end()) { B.insert(A[i]); result += c; } else { c += 1; } } cout << (B.size() == k ? result : -1) << std::endl; return 0; } |
English