Submission #310789

#TimeUsernameProblemLanguageResultExecution timeMemory
310789LucaDantasParrots (IOI11_parrots)C++17
88 / 100
11 ms1792 KiB
#include "encoder.h" #include "encoderlib.h" #include<cstdio> void encode(int N, int M[]) { if(N <= 32) { for(int i = 0; i < N; i++) { for(int bit = 0; bit < 8; bit++) if(M[i]&(1<<bit)) send(8*i+bit); } } else { for(int i = 0; i < N; i++) { for(int bit = 0; bit < 4; bit++) { int cnt = (M[i] >> (2*bit))&3; while(cnt--) send(4*i+bit); } } } }
#include "decoder.h" #include "decoderlib.h" #include<cstdio> #include<cstring> #include<algorithm> int BIT[10000]; void decode(int N, int L, int X[]) { memset(BIT, 0, sizeof BIT); if(N <= 32) { std::sort(X, X+L); for(int i = 0; i < L; i++) BIT[X[i]] = 1; for(int i = 0; i < N; i++) { int here = 0; for(int bit = 0; bit < 8; bit++) { if(BIT[8*i+bit]) here += (1 << bit); } output(here); } } else { for(int i = 0; i < L; i++) BIT[X[i]]++; for(int i = 0; i < N; i++) { int here = 0; for(int bit = 0; bit < 4; bit++) { here += (BIT[4*i+bit]) << (2*bit); } output(here); } } }
#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...