#include <iostream> #include <vector> #include <unordered_set> int main() { unsigned n, k; std::cin >> n >> k; std::unordered_set<int> used; int ret = 0; for (unsigned i = 0; i < n; ++i) { int a_i; std::cin >> a_i; if (used.count(a_i) == 0) { ret += i - used.size(); used.insert(a_i); if (used.size() == k) { std::cout << ret << "\n"; return 0; } } } std::cout << "-1\n"; }
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 | #include <iostream> #include <vector> #include <unordered_set> int main() { unsigned n, k; std::cin >> n >> k; std::unordered_set<int> used; int ret = 0; for (unsigned i = 0; i < n; ++i) { int a_i; std::cin >> a_i; if (used.count(a_i) == 0) { ret += i - used.size(); used.insert(a_i); if (used.size() == k) { std::cout << ret << "\n"; return 0; } } } std::cout << "-1\n"; } |