Submission #1146285

#TimeUsernameProblemLanguageResultExecution timeMemory
1146285LeonidCuk Martian DNA (BOI18_dna)C++20
100 / 100
58 ms3260 KiB
#include <bits/stdc++.h> using namespace std; int main() { int n,m,k,a,b,res=INT_MAX; cin>>n>>m>>k; int sum=m-k; vector<int>v,v1(m),dp(m); bool vis[m]; for(int i=0;i<m;i++)vis[i]=true; for(int i=0;i<n;i++) { cin>>a; v.push_back(a); } for(int i=0;i<k;i++) { cin>>a>>b; v1[a]=b; vis[a]=0; } int l=0; for(int i=0;i<n;i++) { dp[v[i]]++; if(vis[v[i]]==0&&dp[v[i]]>=v1[v[i]]) { vis[v[i]]=1; sum++; } while(l<=i) { if(dp[v[l]]>v1[v[l]]) { dp[v[l]]--; l++; } else break; } if(sum==m)res=min(res,i-l+1); } if(res==INT_MAX)cout<<"impossible"; else cout<<res; 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...