Submission #73971

#TimeUsernameProblemLanguageResultExecution timeMemory
73971sebinkimLast supper (IOI12_supper)C++14
0 / 100
2588 ms2372 KiB
#include "advisor.h" #include <bits/stdc++.h> using namespace std; typedef pair <int, int> pii; static int P[151515], K[151515]; static priority_queue <pii> Q; static bool chk[151515], ans[151515]; void ComputeAdvice(int *C, int n, int k, int m) { int i, t, x; for(i=0; i<n; i++) P[i] = n + k + 1; for(i=n-1; i>=0; i--){ K[k + i] = P[C[i]]; P[C[i]] = k + i; } for(i=0; i<k; i++){ K[i] = P[i]; P[i] = i; chk[i] = 1; Q.push(pii(K[i], i)); } for(i=0; i<n; i++){ if(!chk[C[i]]){ for(; ;){ t = Q.top().second; Q.pop(); x = t >= k? C[t] : t; if(chk[x]){ chk[x] = 0; ans[t] = 1; break; } } Q.pop(); chk[C[i]] = 1; } Q.push(pii(K[k + i], k + i)); } for(i=0; i<n+k; i++){ WriteAdvice(ans[i]); } }
#include "assistant.h" #include <bits/stdc++.h> using namespace std; static vector <int> V; static bool chk[101010]; void Assist(unsigned char *A, int n, int k, int r) { int i, c; for(i=0; i<k; i++){ if(A[i]) V.push_back(i); chk[i] = 1; } for(i=0; i<n; i++){ c = GetRequest(); if(!chk[c]){ chk[V.back()] = 0; PutBack(V.back()); V.pop_back(); } if(A[k + i]) V.push_back(c); chk[c] = 1; } }
#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...