이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#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;
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 ){
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*y);
}
for( int i = 0 ; i < N ; i++ ) output(A[i]);
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |