Submission #547169

#TimeUsernameProblemLanguageResultExecution timeMemory
547169AlexRex0Last supper (IOI12_supper)C++14
0 / 100
375 ms19160 KiB
#include <bits/stdc++.h> #include "advisor.h" using namespace std; void ComputeAdvice(int *C, int N, int K, int M) { /// funciona para mandar el numero WriteAdvice(); int bitsOcupo = 0; if(N <= 5000){ bitsOcupo = 13; }else{ bitsOcupo = 17; } for(int i = 0; i < N; ++i){ int num = C[i]; int bits = 0; while(num > 0){ WriteAdvice(num % 2); bits++; num/=2; } for(int j = bits + 1; j <= bitsOcupo; ++j){ WriteAdvice(0); } } }
#include <bits/stdc++.h> #include "assistant.h" using namespace std; void Assist(unsigned char *A, int N, int K, int R) { int bitsOcupo = 0; if(N <= 5000){ bitsOcupo = 13; }else{ bitsOcupo = 17; } int secOriginal[100002]; int pos = 0; for(int i = 1; i <= N; ++i){ int num = 0; int pot = 1; for(int j = 1; j <= bitsOcupo; ++j){ if((int)A[pos] == 1){ num+= pot; } //cout << (int)A[pos] << ' '; pot*=2; pos++; } secOriginal[i] = num; } int apariciones[100002]; int sigAparicion[100002]; int ultima[100002]; for(int i = N; i >= 0; --i){ apariciones[i] = INT_MAX; ultima[i] = INT_MAX; } for(int i = N; i >= 1; --i){ sigAparicion[i] = apariciones[secOriginal[i]]; ultima[secOriginal[i]] = sigAparicion[i]; apariciones[secOriginal[i]] = i; } /// el first es la posicion de la siguiente aparicion /// el second es el color priority_queue<pair<int, int> > colaP; bool andamio[100002]; for(int i = 0; i < N; ++i){ if(i < K){ andamio[i] = true; colaP.push({apariciones[i], ultima[i]}); }else{ andamio[i] = false; } } for(int i = 1; i <= N; ++i){ int sigColor = GetRequest(); if(!andamio[sigColor]){ pair<int, int> aux; aux = colaP.top(); colaP.pop(); PutBack(aux.second); andamio[aux.second] = false; andamio[sigColor] = true; colaP.push({sigAparicion[i], sigColor}); } } }
#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...