#include <bits/stdc++.h>
using namespace std;
int n, k, t1[500005], t2[500005];
long long out1, a;
bool b[500005];
int main()
{
scanf("%d%d", &n, &k);
for (int i = 0; i < n; i++)
{
scanf("%lld", &a);
if(b[a])
{
++t2[i - 1];
--i;
--n;
continue;
}
b[a] = 1;
t1[i] = a;
}
a = t2[0];
if(n < k)
{
printf("-1");
return 0;
}
for (int i = 1; i < k; i++)
{
out1 += a;
a += t2[i];
}
printf("%lld", out1);
}
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 32 33 34 | #include <bits/stdc++.h> using namespace std; int n, k, t1[500005], t2[500005]; long long out1, a; bool b[500005]; int main() { scanf("%d%d", &n, &k); for (int i = 0; i < n; i++) { scanf("%lld", &a); if(b[a]) { ++t2[i - 1]; --i; --n; continue; } b[a] = 1; t1[i] = a; } a = t2[0]; if(n < k) { printf("-1"); return 0; } for (int i = 1; i < k; i++) { out1 += a; a += t2[i]; } printf("%lld", out1); } |
English