제출 #824787

#제출 시각아이디문제언어결과실행 시간메모리
824787ThylOne Martian DNA (BOI18_dna)C++14
100 / 100
75 ms4508 KiB
#include<bits/stdc++.h> using namespace std; int main(){ int N,K,R;cin>>N>>K>>R; vector<int> nums(N); int occ[K]; int wantedOcc[K]; for(int i = 0 ; i <K;i++)occ[i]=wantedOcc[i]=0; for(int i = 0 ; i <N;i++){cin>>nums[i];} for(int i=0;i<R;i++){ int nuc,w;cin>>nuc>>w; wantedOcc[nuc]=w; } int ans = N+1; int left=0; int nbGood=0; for(int p=0;p<N;p++){ int val=nums[p]; if(wantedOcc[val]==0)continue; occ[val]++; if(occ[val]==wantedOcc[val]){ nbGood++; } while(nbGood==R && left<N && (wantedOcc[nums[left]]==0 || occ[nums[left]]-1>=wantedOcc[nums[left]])){ int val2 = nums[left]; occ[nums[left]]--; left++; if(wantedOcc[val2]==0)continue; } if(nbGood==R){ ans = min(ans,p-left+1); } } if(ans==N+1){ cout<<"impossible"<<endl; }else{ cout<<ans<<endl; } 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...