Submission #1366999

#TimeUsernameProblemLanguageResultExecution timeMemory
1366999vjudge1 Martian DNA (BOI18_dna)C++20
0 / 100
44 ms3132 KiB
#include <bits/stdc++.h>
#define int long long
#define pb push_back
#define fs first
#define sc second
using namespace std;

const int N = 2e5 + 5;
int a[N], freq[N], b[N];

signed main(){
    int n, k, rr;
    cin >> n >> k >> rr;
    for (int i = 0; i < n; i++) cin >> a[i];
    for (int i = 0; i < rr; i++) {
        int x, q;
        cin >> x >> q;
        b[x] = q;
    }

    int l = 0, r = 0;
    int cnt = 0;
    while (true) {
        freq[a[r]]++;
        if (freq[a[r]] == b[a[r]]) cnt++;
        if (cnt == rr) break;
        r++;
        if (r == n) break;
    }
    if (cnt < rr) {
        cout << "impossible" << endl;
        return 0;
    }
    while (l <= r) {
        if (freq[a[l]] == b[a[l]]) break;
        freq[a[l]]--;
        l++;
    }
    cout << r - l + 1 << endl;
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...