#include <cstdio>
#include <vector>
using namespace std;
#define FOR(i,a,b) for(int (i)=(int)(a); (i)!=(int)(b); ++(i))
int n, k;
vector<bool> exists;
vector<int> P;
int main() {
scanf("%d %d", &n, &k);
exists.resize(n, false);
FOR(i,0,n) {
int a;
scanf("%d", &a);
--a;
if (!exists[a]) {
exists[a] = true;
P.push_back(i);
}
}
if (P.size() < k) {
printf("-1\n");
return 0;
}
int result = 0;
FOR(i,0,k) result += (P[i] - i);
printf("%d\n", result);
}
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 30 31 | #include <cstdio> #include <vector> using namespace std; #define FOR(i,a,b) for(int (i)=(int)(a); (i)!=(int)(b); ++(i)) int n, k; vector<bool> exists; vector<int> P; int main() { scanf("%d %d", &n, &k); exists.resize(n, false); FOR(i,0,n) { int a; scanf("%d", &a); --a; if (!exists[a]) { exists[a] = true; P.push_back(i); } } if (P.size() < k) { printf("-1\n"); return 0; } int result = 0; FOR(i,0,k) result += (P[i] - i); printf("%d\n", result); } |
English