Submission #1316408

#TimeUsernameProblemLanguageResultExecution timeMemory
1316408boclobanchat Martian DNA (BOI18_dna)C++20
100 / 100
111 ms17124 KiB
#include<bits/stdc++.h> using namespace std; const int MAXN=2e5+5; set<int> st; vector<int> vi[MAXN]; int A[MAXN],pos[MAXN],req[MAXN],pre[MAXN]; int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n,m,k; cin>>n>>m>>k; for(int i=1;i<=n;i++) cin>>A[i]; for(int i=1;i<=k;i++) { int x,y; cin>>x>>y; req[x]=y; } int ans=1e9; for(int i=0;i<m;i++) if(req[i]) st.insert(pre[i]=-i); for(int i=1;i<=n;i++) { vi[A[i]].push_back(i); if(req[A[i]]&&vi[A[i]].size()>=req[A[i]]) st.erase(pre[A[i]]),st.insert(pre[A[i]]=vi[A[i]][vi[A[i]].size()-req[A[i]]]); if((*st.begin())>=1) ans=min(ans,i-(*st.begin())+1); } if(ans==1e9) cout<<"impossible"; else 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...