Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- using ll = long long;
- using namespace std;
- int main() {
- ios::sync_with_stdio(0);
- cin.tie(0);
- ll n, k; cin >> n >> k;
- vector<ll> a(n + 1); for (int i = 1; i <= n; ++i) cin >> a[i];
- ll i = 1, j = 2, ibest = 0, jbest = 1e6;
- vector<ll> t(k + 1, 0);
- ++t[a[i]];
- ++t[a[j]];
- while (j <= n) {
- bool isEmpty = false;
- for (int x = 1; x <= k; ++x) {
- if (t[x] == 0) {
- if (j == n) {
- ++j;
- break;
- }
- isEmpty = true;
- ++j;
- ++t[a[j]];
- break;
- }
- }
- if (isEmpty) continue;
- if (t[a[i]] == 1 && j - i < jbest - ibest) {
- jbest = j;
- ibest = i;
- if (j == n) break;
- ++j;
- ++t[a[j]];
- }
- else {
- --t[a[i]];
- ++i;
- }
- }
- cout << ibest << " " << jbest;
- }
Advertisement
Add Comment
Please, Sign In to add comment