Submission #1301515

#TimeUsernameProblemLanguageResultExecution timeMemory
1301515josiftepe Martian DNA (BOI18_dna)C++20
100 / 100
25 ms1996 KiB
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
const int INF = 2e9;
int main() {
    ios_base::sync_with_stdio(false);
    
    int n, k, r;
    cin >> n >> k >> r;
    
    vector<int> v(n);
    for(int i = 0; i < n; i++) {
        cin >> v[i];
    }
    
    vector<int> req(k + 1, 0);
    for(int i = 0; i < r; i++) {
        int A, B;
        cin >> A >> B;
        req[A] = B;
    }
    
    int j = 0;
    int res = INF;
    
    for(int i = 0; i < n; i++) {
        while(r > 0 and j < n) {
            req[v[j]]--;
            if(req[v[j]] == 0) {
                r--;
            }
            j++;
        }
        
        if(r == 0) {
            res = min(res, j - i);
        }
        
        req[v[i]]++;
        if(req[v[i]] > 0) {
            r++;
        }
        
    }
    
    if(res == INF) {
        cout << "impossible" << endl;
    }
    else {
        cout << res << endl;
    }
    
    return 0;
}
/*
 5 2 2
 0 1 1 0 1
 0 1
 1 1
 
 13 4 3
 1 1 3 2 0 1 2 0 0 0 0 3 1
 0 2
 2 1
1 2
 
 5 3 1
 1 2 0 1 2
 0 2
 */
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...