#include <cstdio> #include <list> using namespace std; int main(int argc, char const *argv[]) { int n, k; long long result = 0; int current_position = 0; bool orangeade_ids[500001]; scanf("%d %d", &n, &k); for (int i = 0; k - current_position && i < n; i++) { int orangeade_id; scanf("%d", &orangeade_id); if (!orangeade_ids[orangeade_id]) { result += i - current_position; current_position++; } orangeade_ids[orangeade_id] = true; } printf("%lld", current_position == k ? result : -1); 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 | #include <cstdio> #include <list> using namespace std; int main(int argc, char const *argv[]) { int n, k; long long result = 0; int current_position = 0; bool orangeade_ids[500001]; scanf("%d %d", &n, &k); for (int i = 0; k - current_position && i < n; i++) { int orangeade_id; scanf("%d", &orangeade_id); if (!orangeade_ids[orangeade_id]) { result += i - current_position; current_position++; } orangeade_ids[orangeade_id] = true; } printf("%lld", current_position == k ? result : -1); return 0; } |