Submission #1123105

#TimeUsernameProblemLanguageResultExecution timeMemory
1123105ezzzay Martian DNA (BOI18_dna)C++20
100 / 100
82 ms2376 KiB
#include<bits/stdc++.h> using namespace std; #define ff first #define ss second #define pb push_back const int N=3e5+5; int cnt[N]; int a[N]; int req[N]; int p; void add(int x){ cnt[a[x]]++; if(cnt[a[x]]==req[a[x]])p++; } void rem(int x){ cnt[a[x]]--; if(cnt[a[x]]==req[a[x]]-1)p--; } signed main(){ int n,m,k; cin>>n>>m>>k; for(int i=1;i<=n;i++)cin>>a[i]; p=m-k; for(int i=1;i<=k;i++){ int x; cin>>x; cin>>req[x]; } int l=1,r=0; int ans=1e9; while(r<=n){ if(p==m){ ans=min(ans,r-l+1); rem(l++); } else{ add(++r); } } if(ans==1e9){ cout<<"impossible"; return 0; } 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...