제출 #26976

#제출 시각아이디문제언어결과실행 시간메모리
26976grands앵무새 (IOI11_parrots)C++14
88 / 100
15 ms2440 KiB
#include "encoder.h" #include "encoderlib.h" void encode(int N, int M[]) { // 비트 위치별 마스크 int mask[8] = { 1 << 0, 1 << 1, 1 << 2, 1 << 3, 1 << 4, 1 << 5, 1 << 6, 1 << 7 }; if (N > 32){ for (int i = 0; i < N; i++){ //전송하고자 하는 메시지 int message = M[i]; //전송메시지의 위치 int loc = i << 2; //메시지 비트별 위치 //00 00 00 00 4구간 //N * 4 * 3 = 12 N for (int m = 0; m < 8; m += 2){ if (message&mask[m]){ send(loc + m / 2); } if (message&mask[m + 1]){ send(loc + m / 2); send(loc + m / 2); } } } } else{ for (int i = 0; i < N; i++){ int message = M[i]; int loc = i << 3; for (int m = 0; m < 8; m += 1){ if (message&mask[m]){ send(loc + m); } } } } }
#include "decoder.h" #include "decoderlib.h" void decode(int N, int L, int X[]){ int M[64] = { 0 }; if (N > 32){ for (int i = 0; i < L; i++){ int message = X[i]; int loc = message >> 2; M[loc] += (1 << (message % 4) * 2); } for (int i = 0; i < N; i++){ output(M[i]); } } else{ for (int i = 0; i < L; i++){ int message = X[i]; int loc = message >> 3; M[loc] += 1 << ((message % 8)); } for (int i = 0; i < N; i++){ output(M[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...