제출 #65194

#제출 시각아이디문제언어결과실행 시간메모리
65194gnoor최후의 만찬 (IOI12_supper)C++17
0 / 100
221 ms21384 KiB
#include "advisor.h" int cntt[100100]; void ComputeAdvice(int *C, int N, int K, int M) { for (int i=0;i<N;i++) { cntt[C[i]]++; } for (int i=0;i<N;i++) { for (int j=0;j<cntt[i];j++) { WriteAdvice(0); } WriteAdvice(1); } }
#include "assistant.h" #include <vector> #include <set> using namespace std; int cnt[100100]; bool removable[100100]; set<int> rminscf; set<int> inscf; void Assist(unsigned char *A, int N, int K, int R) { int cur=0; for (int i=0;i<R;i++) { if (A[i]==0) cnt[cur]++; else cur++; } for (int i=0;i<N;i++) { if (cnt[i]==0) removable[i]=true; } for (int i=0;i<K;i++) { if (removable[i]) rminscf.insert(i); else inscf.insert(i); } int req; for (int i=0;i<N;i++) { req=GetRequest(); if (inscf.find(req)==inscf.end()&&rminscf.find(req)==rminscf.end()) { //req is not in scf if (!rminscf.empty()) { PutBack(*rminscf.begin()); rminscf.erase(rminscf.begin()); } else { PutBack(*inscf.begin()); inscf.erase(inscf.begin()); } inscf.insert(req); } cnt[req]--; if (cnt[req]==0) { removable[req]=true; inscf.erase(req); rminscf.insert(req); } } }
#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...