Submission #39292

#TimeUsernameProblemLanguageResultExecution timeMemory
39292ykmyouParrots (IOI11_parrots)C++14
81 / 100
7 ms2456 KiB
#include "encoder.h" #include "encoderlib.h" const int cand[] = { 128, 64, 32, 16, 8, 4, 2, 1 }; void encode(int N, int M[]) { for (int i = 0; i < N; i++) { int val = M[i]; for (int j = 0; j < 8; j++) { if (cand[j] <= val) { if (32 <= i) { send(i * 8 + j); send(i * 8 + j); } else send(i * 8 + j); val -= cand[j]; } } } }
#include "decoder.h" #include "decoderlib.h" const int cand[] = { 128, 64, 32, 16, 8, 4, 2, 1 }; int cnt[256] = { 0, }; void decode(int N, int L, int X[]) { for (int i = 0; i < L; i++) cnt[X[i]]++; for (int i = 0; i < N; i++) { int val = 0; for (int j = 0; j < L; j++) { int b = X[j]; if (i < 32){ if (b / 8 == i && (cnt[b] == 1 || cnt[b] == 3)) { cnt[b]--; val += cand[b % 8]; } } else { if (b / 8 == i && cnt[b] == 2) { cnt[b] -= 2; val += cand[b % 8]; } } } output(val); } }
#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...