Submission #234338

#TimeUsernameProblemLanguageResultExecution timeMemory
234338Nodir_BobievParrots (IOI11_parrots)C++14
81 / 100
15 ms1792 KiB
#include "encoder.h" #include "encoderlib.h" #include <algorithm> void encode(int N, int M[]) { for(int i=0; i<std::min(32,N); i++){ int x = M[i]; for( int j = 0; j < 8; j ++ ){ if( (x&(1<<j)) ){ send((i<<3)+j); } } } for( int i = std::min(32,N); i < N; i ++ ){ int x = M[i]; for( int j = 0; j < 8; j ++ ){ if( (x&(1<<j)) ){ send((i-32)+j); send((i-32)+j); } } } }
#include "decoder.h" #include "decoderlib.h" #include <algorithm> void decode(int N, int L, int X[]) { int cnt[N][10]={}; for( int i = 0; i < L; i ++ ){ int x = X[i]; int y = x % 8; int z = (x / 8); cnt[z][y] ++; } int ans[N] = {}; for( int i = 0; i < std::min(32,N); i ++ ){ for( int j = 0; j < 8; j ++ ){ if( cnt[i][j] == 1 || cnt[i][j] == 3){ ans[i] += (1<<j); } if( cnt[i][j] == 2 || cnt[i][j] == 3){ ans[i+32] += (1<<j); } } } for( int i = 0; i < N; i ++ ){ output(ans[i]); } }
#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...