Submission #1322388

#TimeUsernameProblemLanguageResultExecution timeMemory
1322388wangzhiyi33최후의 만찬 (IOI12_supper)C++20
100 / 100
95 ms5580 KiB
#include<bits/stdc++.h> using namespace std; #include "advisor.h" const int maxn=2e5; int prv[maxn+2],nxt[maxn+2]; int mana[maxn+2],a[maxn+2]; bool dlm[maxn+2],bit[maxn+2]; void ComputeAdvice(int *c, int n, int k, int m) { for(int q=0;q<k;q++){ a[q]=q; } for(int q=k;q<n+k;q++){ a[q]=c[q-k]; } for(int q=0;q<n;q++)mana[q]=-1; for(int q=0;q<n+k;q++){ prv[q]=mana[a[q]]; mana[a[q]]=q; } for(int q=0;q<n;q++)mana[q]=maxn+2; for(int q=n+k-1;q>=0;q--){ nxt[q]=mana[a[q]]; mana[a[q]]=q; } set<pair<int,int> >st; for(int q=0;q<k;q++){ st.insert({nxt[q],q}); dlm[q]=true; } for(int q=k;q<n+k;q++){ if(dlm[a[q]]){ st.erase({q,prv[q]}); st.insert({nxt[q],q}); bit[prv[q]]=true; } else{ pair<int,int>apa=*st.rbegin(); st.erase(apa); dlm[a[apa.second]]=false; st.insert({nxt[q],q}); dlm[a[q]]=true; } } for(int q=0;q<2*n;q++){ WriteAdvice(bit[q]); } }
#include<bits/stdc++.h> using namespace std; #include "assistant.h" void Assist(unsigned char *a, int n, int k, int r) { set<int>ya,ga; for(int q=0;q<k;q++){ if((int)(a[q])==0){ ga.insert(q); } else{ ya.insert(q); } } for(int q=k;q<n+k;q++){ int brp=GetRequest(); if(ya.count(brp)){ } else{ int apa=*ga.rbegin(); ga.erase(apa); PutBack(apa); ya.insert(brp); } if((int)(a[q])==0){ ya.erase(brp); ga.insert(brp); } } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...