#include "bits/stdc++.h"
using namespace std;
#ifdef duc_debug
#include "bits/debug.h"
#else
#define debug(...)
#endif
const int maxn = 2e5 + 5;
int n, a[maxn], k, q;
vector<int> vec[maxn];
int freq[maxn];
void solve() {
cin >> n >> k >> q;
for (int i = 1; i <= n; ++i) {
cin >> a[i];
vec[a[i]].push_back(i);
}
set<int> s;
for (int i = 1; i <= q; ++i) {
int x; cin >> x;
cin >> freq[x];
if ((int)vec[x].size() < freq[x]) {
cout << "impossible\n";
return;
}
s.insert(vec[x][freq[x] - 1]);
}
int res = *s.rbegin();
for (int i = 1; i <= n; ++i) {
res = min(res, *s.rbegin() - i + 1);
if (freq[a[i]]) {
s.erase(vec[a[i]][freq[a[i]] - 1]);
if (freq[a[i]] == (int)vec[a[i]].size()) break;
s.insert(vec[a[i]][freq[a[i]]++]);
}
}
cout << res;
}
signed main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
solve();
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... |