제출 #94124

#제출 시각아이디문제언어결과실행 시간메모리
94124fjzzq2002최후의 만찬 (IOI12_supper)C++14
0 / 100
108 ms9200 KiB
#include "advisor.h" #include <bits/stdc++.h> using namespace std; #define SZ 222222 typedef pair<int,int> pii; #define fi first #define se second int d[SZ],e[SZ],f[SZ],ns[SZ],ts[SZ]; void ComputeAdvice(int *C,int N,int K,int M) { for(int i=0;i<N;++i) f[i]=-1,ts[i]=2e9; for(int i=0;i<N+K;++i) { if(i<K) d[i]=i; else d[i]=C[i-K]; } for(int i=N+K-1;i>=0;--i) ns[i]=ts[d[i]],ts[d[i]]=i; priority_queue<pii> pq,eq; for(int i=0;i<K;++i) pq.push(pii(2e9+i,-1)); for(int i=0;i<N+K;++i) { while(pq.size()&&eq.size()&&pq.top()==eq.top()) pq.pop(),eq.pop(); int x=d[i]; if(~f[x]) eq.push(pii(i,f[x])); else { auto w=pq.top(); pq.pop(); if(~w.se) e[w.se]=1,f[d[w.se]]=-1; } f[x]=i; pq.push(pii(ns[i],i)); } for(int i=0;i<N+K;++i) WriteAdvice(e[i]); }
#include "assistant.h" #include "advisor.h" #include <bits/stdc++.h> using namespace std; #define SZ 222222 typedef pair<int,int> pii; #define pb push_back #define fi first #define se second bool in[SZ]; void Assist(unsigned char *A, int N, int K, int R) { vector<int> gg; for(int i=0;i<K;++i) { in[i]=1; if(A[i]) gg.pb(i); } for(int i=K;i<N+K;++i) { int u=GetRequest(); if(!in[u]) { if(!gg.size()) throw "GG"; int w=gg.back(); gg.pop_back(); PutBack(w); in[w]=0; } if(A[u]) gg.pb(u); } }
#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...