#include <iostream>
using namespace std;
const int SZ = 500005;
int W[SZ];
int main()
{
int n,k;
int a;
scanf("%d%d",&n, &k);
long long res = 0L;
int dsf = 0;
for (int i=0;i<k;i++)
{
scanf("%d",&a);
if (W[a]) dsf++;
else res += dsf;
W[a]=1;
}
for (int i=k;i<n;i++)
{
scanf("%d",&a);
if (!W[a] && dsf)
{
res += i-k+dsf;
dsf--;
}
W[a]=1;
}
cout << (dsf == 0 ? res : -1) << endl;
}
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 | #include <iostream> using namespace std; const int SZ = 500005; int W[SZ]; int main() { int n,k; int a; scanf("%d%d",&n, &k); long long res = 0L; int dsf = 0; for (int i=0;i<k;i++) { scanf("%d",&a); if (W[a]) dsf++; else res += dsf; W[a]=1; } for (int i=k;i<n;i++) { scanf("%d",&a); if (!W[a] && dsf) { res += i-k+dsf; dsf--; } W[a]=1; } cout << (dsf == 0 ? res : -1) << endl; } |
English