#include <bits/stdc++.h>
using namespace std;
#define int long long
#define pb push_back
#define f first
#define s second
#define mid (l+r)/2.0
const int M=1e18,N=3e5+1,mod=998244353;
int pxp(int x,int p){
int ans=1;
while(p){
if(p&1)ans*=x,ans%=mod; x*=x,x%=mod,p>>=1;}
return ans;
}
void solve(){
int n,k,R;cin>>n>>k>>R;
vector<int> a(n);
vector<pair<int,int>> c(R);
for(int i=0;i<n;i++)cin>>a[i];
for(int i=0;i<R;i++){
cin>>c[i].f>>c[i].s;
}
int l=0,r=0,cnt=0,ans=M;
while(r<n){
for(int i=0;i<R;i++){
if(c[i].f==a[r]){
c[i].s--;
if(c[i].s==0)cnt++;
break;
}
}r++;
while(cnt==R){
for(int i=0;i<R;i++){
if(c[i].f==a[l]){
c[i].s++;
if(c[i].s==1)cnt--;
break;
}
}l++;
ans=min(ans,r-l+1);
}
}
if(ans==M)cout<<"impossible"<<'\n';
else cout<<ans<<'\n';
}
signed main(){
ios::sync_with_stdio(0), cin.tie(0); cout.tie(0);
// int t; cin>>t; while(t--)
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... |