/* 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; } |