Submission #991033

#TimeUsernameProblemLanguageResultExecution timeMemory
991033lalig777Last supper (IOI12_supper)C++14
0 / 100
48 ms5976 KiB
#include "advisor.h" #include <iostream> #include <vector> #include <unordered_set> #include <queue> using namespace std; void ComputeAdvice(int *C, int N, int K, int M){ vector<int>orden(N, 0); for (int i=0; i<N; i++) orden[C[i]]++; for (int i=0; i<K; i++){ if (orden[i]==0) WriteAdvice(0); else WriteAdvice(1); } for (int i=0; i<N; i++){ int x=C[i]; orden[x]--; if (orden[x]==0) WriteAdvice(0); else WriteAdvice(1); }return; }
#include "assistant.h" #include <iostream> #include <vector> #include <unordered_set> #include <queue> using namespace std; void Assist(unsigned char *A, int N, int K, int R){ queue<int>away; unordered_set<int>current; for (int i=0; i<K; i++){ current.insert(i); if (A[i]=='0') away.push(i); } for (int i=0; i<N; i++){ int follow=GetRequest(); char x=A[i+K]; if (!(current.find(follow)!=current.end())){ int remov=-1; if (away.empty()) remov=*current.begin(); else{ remov=away.front(); away.pop(); } PutBack(remov); current.erase(remov); current.insert(follow); }if (x=='0') away.push(follow); }return; }
#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...