/*
Zadanie: Oranżada
Autor: Tomasz Kwiatkowski
*/
#include <bits/stdc++.h>
#define fi first
#define se second
#define pb push_back
using namespace std;
typedef long long ll;
const int MAXN = 1000*1000 + 7;
const int INF = 1000*1000*1000 + 7;
int tab[MAXN];
int main()
{
ios_base::sync_with_stdio(0), cin.tie(0);
int n, k;
cin >> n >> k;
vector<int> brands(n);
for (auto& b : brands)
cin >> b;
bool ok = false;
ll ans = 0;
int pos = 0;
vector<int> cnt(n + 1);
for (int i = 0; i < n; ++i) {
++cnt[brands[i]];
if (cnt[brands[i]] == 1) {
ans += (i - pos);
++pos;
}
if (pos >= k) {
ok = true;
break;
}
}
if (ok)
cout << ans << '\n';
else
cout << -1 << '\n';
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 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | /* Zadanie: Oranżada Autor: Tomasz Kwiatkowski */ #include <bits/stdc++.h> #define fi first #define se second #define pb push_back using namespace std; typedef long long ll; const int MAXN = 1000*1000 + 7; const int INF = 1000*1000*1000 + 7; int tab[MAXN]; int main() { ios_base::sync_with_stdio(0), cin.tie(0); int n, k; cin >> n >> k; vector<int> brands(n); for (auto& b : brands) cin >> b; bool ok = false; ll ans = 0; int pos = 0; vector<int> cnt(n + 1); for (int i = 0; i < n; ++i) { ++cnt[brands[i]]; if (cnt[brands[i]] == 1) { ans += (i - pos); ++pos; } if (pos >= k) { ok = true; break; } } if (ok) cout << ans << '\n'; else cout << -1 << '\n'; return 0; } |
English