Submission #583952

#TimeUsernameProblemLanguageResultExecution timeMemory
583952AndrejSh3Parrots (IOI11_parrots)C++17
0 / 100
8 ms1096 KiB
#include<bits/stdc++.h> #include"encoder.h" #include"encoderlib.h" using namespace std; /* 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 = 0; if( q == 0 ) _Mi |= ( ( Mi & (1<<1) ) | ( Mi & (1<<0) ) ) >> 0; if( q == 1 ) _Mi |= ( ( Mi & (1<<3) ) | ( Mi & (1<<2) ) ) >> 2; if( q == 2 ) _Mi |= ( ( Mi & (1<<5) ) | ( Mi & (1<<4) ) ) >> 4; if( q == 3 ) _Mi |= ( ( Mi & (1<<7) ) | ( Mi & (1<<6) ) ) >> 6; rv |= _Mi; cout << i << ' ' << q << ' ' << _Mi << ' ' << bitset<8>(rv) << endl; return rv; } void encode( int N, int M[] ){ for( int i = 0 ; i < N ; i++ ){ for( int q = 0 ; q < 4 ; q++ ) send( sendValue( i, q, M[i] ) ); } }
#include<bits/stdc++.h> #include"decoder.h" #include"decoderlib.h" using namespace std; /* 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 ){ cout << bitset<16>(Xi) << endl; z = Xi & (0b11); Xi >>= 2; y = Xi & (0b11); cout << bitset<16>(Xi) << endl; Xi >>= 2; x = Xi; cout << bitset<16>(Xi) << endl; } 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*y); cout << X[i] << ' ' << x << ' ' << y << ' ' << z << endl; } 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...