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