#include<bits/stdc++.h>
using namespace std;
#define int long long
#define db(val) "[" #val " = " << (val) << "] "
const int maxn = 2e5 + 4;
const int INF = 1e9;
int n, k, r, a[maxn], cnt[maxn], req[maxn];
signed main()
{
ios::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
cin >> n >> k >> r;
for (int i = 1; i <= n; i++)
cin >> a[i];
for (int i = 1, x, val; i <= r; i++) {
cin >> x >> val;
req[x] = val;
}
int j = 0, cur = 0, res = INF;
for (int i = 1; i <= n; i++) {
while (j + 1 <= n && cur < r) {
j++;
cnt[a[j]]++;
if (cnt[a[j]] == req[a[j]]) cur++;
}
if (cur == r) res = min(res, j - i + 1);
if (cnt[a[i]] == req[a[i]]) cur--;
cnt[a[i]]--;
};
if (res == INF) cout << "impossible";
else cout << res;
cout << '\n';
}
# | 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... |