#include <bits/stdc++.h>
using namespace std;
const int maxn = 2e5 + 5;
int dem[maxn], req[maxn], a[maxn];
int n, k, r;
int l, h;
int remain;
int ans = 1e9;
int main()
{
ios_base :: sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
cin >> n >> k >> r;
for (int i=1; i<=n; i++) cin >> a[i];
for (int i=1; i<=r; i++){
int x, y;
cin >> x >> y;
req[x] = y;
remain++;
}
l = 1, h = 0;
while (l <= n && h <= n){
while (remain > 0 && h < n){
h++;
dem[a[h]]++;
if (dem[a[h]] == req[a[h]]) remain--;
}
if (remain > 0) break;
while (remain == 0 && l <= h){
dem[a[l]]--;
if (dem[a[l]] < req[a[l]]) remain++;
l++;
}
ans = min(ans, h - l + 2);
}
if (ans == 1e9) cout << "impossible";
else cout << ans;
return 0;
}
| # | 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... |