Submission #1298562

#TimeUsernameProblemLanguageResultExecution timeMemory
1298562nguyenkhangninh99 Martian DNA (BOI18_dna)C++20
100 / 100
106 ms9864 KiB
#include<bits/stdc++.h>
using namespace std;

#define int long long

signed main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0); cout.tie(0);

    int n, k, r; cin >> n >> k >> r;
    vector<int> a(n + 1), req(n + 1);
    for(int i = 1; i <= n; i++) cin >> a[i];

    set<int> s;
    for(int i = 1; i <= r; i++){
        int b, q; cin >> b >> q;
        req[b] = q;
        s.insert(b);
    }

    vector<int> cnt(n + 1);
    int ans = 1e9;
    for(int i = 1, j = 1; i <= n; i++){
        while(j <= n && s.size()){
            cnt[a[j]]++;
            if(cnt[a[j]] >= req[a[j]]) s.erase(a[j]);
            j++;
        }
        if(s.empty()) ans = min(ans, j - i);
        cnt[a[i]]--;
        if(cnt[a[i]] < req[a[i]]) s.insert(a[i]);
        j = max(j, i + 1);
    }
    if(ans == 1e9) cout << "impossible";
    else cout << ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...