#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 time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |