Submission #829914

#TimeUsernameProblemLanguageResultExecution timeMemory
829914MODDILast supper (IOI12_supper)C++14
0 / 100
117 ms144088 KiB
#include <bits/stdc++.h> #include "advisor.h" using namespace std; #define pb push_back #define mp make_pair typedef long long ll; typedef vector<int> vi; typedef vector<ll> vl; typedef pair<int,int> pii; typedef pair<ll, ll> pll; int n; stack<int> G[100105]; set<pii> activasion; set<int> in_pq; vi advice, out; void ComputeAdvice(int *C, int N, int K, int M) { n = N; for(int i = n-1; i >= 0; i--) G[C[i]].push(i); for(int i = 0; i < K; i++){ int when = n - 1; if(!G[i].empty()) when = G[i].top(); activasion.insert(mp(when, i)); in_pq.insert(i); } for(int i = 0; i < n + K; i++) advice.pb(1); for(int i = 0; i < K; i++) out.pb(i); for(int i = 0; i < n; i++){ G[C[i]].pop(); out[C[i]] = K + i; if(in_pq.find(C[i]) == in_pq.end()){ pii sega = *activasion.rbegin(); activasion.erase(sega); in_pq.erase(sega.second); advice[out[sega.second]] = 0; } int when = 0; in_pq.insert(C[i]); if(G[C[i]].empty())when = -n-10; else when = G[C[i]].top(); activasion.insert(mp(when, C[i])); } for(int i = 0; i < n+K; i++) WriteAdvice(advice[i]); }
#include "assistant.h" #include <bits/stdc++.h> using namespace std; #define mp make_pair #define pb push_back typedef long long ll; typedef vector<int> vi; typedef vector<ll> vl; typedef pair<int,int> pii; typedef pair<ll, ll> pll; void Assist(unsigned char *A, int N, int K, int R) { int n = N, k = K; set<int> odma, in; for(int i = 0; i < K; i++){ if(A[i] == 0) odma.insert(i); in.insert(i); } for(int i = 0; i < n; i++){ int adv = GetRequest(); if(in.find(adv) == in.end()){ PutBack(*odma.begin()); in.erase(*odma.begin()); odma.erase(odma.begin()); } in.insert(adv); if(A[i+k] == 0) odma.insert(adv); } }
#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...