#include <bits/stdc++.h>
#define endl "\n"
using namespace std;
typedef long long ll ;
map<ll,ll>req,fa;
set<ll>st;
int main() {
ios::sync_with_stdio(0);cin.tie(0);cout.tie(0) ;
ll n,k,qq;
cin >>n>>k>>qq;
ll a[n];
for(ll i=0;i<n;i++){
cin >>a[i];
}
while(qq--){
ll x,y;
cin >>x>>y;
req[x]=y;
st.insert(x) ;
}
ll l=0,r=0,mn=1e9;
while(l < n){
while(r<n && !st.empty()){
fa[a[r]]++;
if(fa[a[r]]==req[a[r]]){
st.erase(a[r]);
}
r++;
}
if(st.empty())
mn=min(mn,r-l);
// cout << l << " " << r << endl ;
fa[a[l]]--;
if(fa[a[l]] < req[a[l]])
st.insert(a[l]);
l++;
}
if(mn!=1e9)
cout <<mn<<endl;
else{
cout <<"impossible"<<endl;
}
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... |