Submission #1254785

#TimeUsernameProblemLanguageResultExecution timeMemory
1254785LeonaRaging Martian DNA (BOI18_dna)C++20
100 / 100
22 ms4676 KiB
#include<bits/stdc++.h>
using namespace std;

#define int long long
#define db(val) "[" #val " = " << (val) << "] "

const int maxn = 2e5 + 4;
const int INF = 1e9;

int n, k, r, a[maxn], cnt[maxn], req[maxn];

signed main()
{
    ios::sync_with_stdio(0);
    cin.tie(0); cout.tie(0);
    cin >> n >> k >> r;
    for (int i = 1; i <= n; i++)
        cin >> a[i];
    for (int i = 1, x, val; i <= r; i++) {
        cin >> x >> val;
        req[x] = val;
    }
    int j = 0, cur = 0, res = INF;
    for (int i = 1; i <= n; i++) {
        while (j + 1 <= n && cur < r) {
            j++;
            cnt[a[j]]++;
            if (cnt[a[j]] == req[a[j]]) cur++;
        }
        if (cur == r) res = min(res, j - i + 1);
        if (cnt[a[i]] == req[a[i]]) cur--;
        cnt[a[i]]--;
    };
    if (res == INF) cout << "impossible";
    else cout << res;
    cout << '\n';
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...