Submission #1311044

#TimeUsernameProblemLanguageResultExecution timeMemory
1311044waelkb Martian DNA (BOI18_dna)C++20
68 / 100
2094 ms3212 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...