#include <bits/stdc++.h> using namespace std; #define N 500002 int odw[N]; long long ile, a, wyn, poz, n, k; int main() { scanf("%lld%lld", &n, &k); poz = k; for (int i = 0; i < n && poz; ++i) { scanf("%lld", &a); if (i < k) { if (!odw[a]) { odw[a] = 1; poz--; } else { wyn += k - (long long)i + ile; ile++; } } else { if (odw[a]) { wyn += poz; //ile++; } else { odw[a] = 1; poz--; } } } if (poz > 0) printf("-1"); else { printf("%lld", wyn); } }
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 35 36 37 38 39 40 41 42 43 44 45 46 | #include <bits/stdc++.h> using namespace std; #define N 500002 int odw[N]; long long ile, a, wyn, poz, n, k; int main() { scanf("%lld%lld", &n, &k); poz = k; for (int i = 0; i < n && poz; ++i) { scanf("%lld", &a); if (i < k) { if (!odw[a]) { odw[a] = 1; poz--; } else { wyn += k - (long long)i + ile; ile++; } } else { if (odw[a]) { wyn += poz; //ile++; } else { odw[a] = 1; poz--; } } } if (poz > 0) printf("-1"); else { printf("%lld", wyn); } } |