Submission #1156614

#TimeUsernameProblemLanguageResultExecution timeMemory
1156614the_ZHER Martian DNA (BOI18_dna)C++20
40 / 100
2092 ms4792 KiB
#include <bits/stdc++.h> #define boost ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); #define int long long using namespace std; const int inf=1e17; const int N=2e5+5; const int N1=1e5+5; const int N2=5e6+6; const int mod=1e9+7; const int k1=447; struct edge{ int d,in; }; struct edge1{ int l,r; }; vector<int>v; int dp[N]; int dp1[N]; vector<int>v1; signed main(){ boost; int n,k,q; cin>>n>>k>>q; v.push_back(0); for(int i=1;i<=n;i++){ int x; cin>>x; dp[x]++; v.push_back(x); } int ok=0; for(int i=1;i<=q;i++){ int x,cnt; cin>>x>>cnt; v1.push_back(x); dp1[x]=max(dp1[x],cnt); if(dp[x]<cnt){ ok=1; } } if(ok==1){ cout<<"impossible"; return 0; } for(int i=1;i<=n;i++){ dp[v[i]]=0; } int ans=n; for(int l=1;l<=n;l++){ for(int r=l;r<=n;r++){ dp[v[r]]++; int ok=0; for(int j=0;j<v1.size();j++){ if(dp[v1[j]]<dp1[v1[j]]){ ok=1; } } if(ok==0){ ans=min(ans,r-l+1); } } for(int r=l;r<=n;r++){ dp[v[r]]--; } } cout<<ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...