#include <bits/stdc++.h>
using namespace std;
const int N = 2e5 + 3;
int n, k, a[N], req[N], cnt[N], oliu = 0;
void add(int x){
if (cnt[x] == req[x] - 1) ++oliu;
++cnt[x];
}
void rem(int x){
if (cnt[x] == req[x]) --oliu;
--cnt[x];
}
int main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int m; cin >> n >> k >> m;
for (int i = 1; i <= n; ++i)
cin >> a[i];
for (int i = 1, b; i <= m; ++i)
cin >> b >> req[b];
oliu = k - m;
int res = n + 67;
for (int i = 1, j = 1; i <= n; ++i){
add(a[i]);
if (oliu == k){
while(j <= i && oliu == k) rem(a[j++]);
--j, add(a[j]);
res = min(res, i - j + 1);
}
}
if (res == n + 67) cout << "impossible";
else cout << res;
}
| # | 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... |