Submission #153997

#TimeUsernameProblemLanguageResultExecution timeMemory
153997stefdascaLast supper (IOI12_supper)C++14
0 / 100
206 ms9600 KiB
#include<bits/stdc++.h> #include "advisor.h" using namespace std; void ComputeAdvice(int *C, int N, int K, int M) { int frq[100002]; memset(frq, 0, sizeof(frq)); for(int i = 0; i < N; ++i) frq[C[i]]++; for(int i = 0; i < N; ++i) { for(int j = 1; j <= frq[i]; ++j) WriteAdvice(0); WriteAdvice(1); } }
#include<bits/stdc++.h> #include "assistant.h" using namespace std; void Assist(unsigned char *A, int N, int K, int R) { int frq[100002]; memset(frq, 0, sizeof(frq)); int poz = 0; for(int i = 0; i < R; ++i) { if(A[i] == '1') ++poz; else ++frq[poz]; } bool is[100002]; memset(is, 0, sizeof(is)); set<pair<int, int> >frq1; set<pair<int, int> >frq2; for(int i = 0; i < K; ++i) frq1.insert({frq[i], i}), is[i] = 1; for(int i = 0; i < N; ++i) { int color = GetRequest(); if(!is[color]) { pair<int, int> p = *frq1.begin(); frq1.erase(p); PutBack(p.second); is[p.second] = 0; is[color] = 1; frq2.insert(p); frq1.insert({frq[color], color}); frq2.erase({frq[color], color}); } frq1.erase({frq[color], color}); --frq[color]; frq1.insert({frq[color], color}); } }
#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...