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