제출 #568402

#제출 시각아이디문제언어결과실행 시간메모리
568402AndrejSh3앵무새 (IOI11_parrots)C++17
17 / 100
2 ms1040 KiB
#include<bits/stdc++.h> #include"encoder.h" #include"encoderlib.h" /* Strategy: *) Encoder: Encoder will send the following number: xxxxyyzz xxxx is the index of the number in the original message yy is which quarter of the message we're sending (33221100) zz are the two bits of the yy quarter of the value in the original message This encoder will send 4*N messages of length 8 *) Decoder: Decoder will take the given numbers xxxxyyzz and create an array with the original message */ int sendValue( int i, int q, int Mi ){ int rv = i; rv <<= 2; rv |= q; rv <<= 2; int _Mi = (Mi & (1<<(2*q+1))) | (Mi & (1<<(2*q))); rv |= _Mi; return rv; } void encode( int N, int M[] ){ for( int i = 0 ; i < N ; i++ ){ for( int q = 0 ; q < 3 ; q++ ) send( sendValue( i, q, M[i] ) ); } }
#include<bits/stdc++.h> #include"decoder.h" #include"decoderlib.h" /* Strategy: *) Encoder: Encoder will send the following number: xxxxyyzz xxxx is the index of the number in the original message yy is which quarter of the message we're sending (33221100) zz are the two bits of the yy quarter of the value in the original message This encoder will send 4*N messages of length 8 *) Decoder: Decoder will take the given numbers xxxxyyzz and create an array with the original message */ void recieveValue( int Xi, int &x, int &y, int &z ){ z = Xi & (0b11); Xi >>= 2; y = Xi & (0b11); Xi >>= 2; x = Xi; } void decode( int N, int L, int X[] ){ int A[N] = {}; for( int &i : A ) i = 0; int x, y, z; for( int i = 0 ; i < L ; i++ ){ recieveValue( X[i], x, y, z ); A[x] |= ( (z&2) << (2*y+1) ) | ( (z&1) << (2*y) ); } for( int i = 0 ; i < N ; i++ ) output(A[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...