This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "encoder.h"
#include "encoderlib.h"
#include <bits/stdc++.h>
using namespace std;
int append( int x, int i ){
return 100*x+i;
}
void encode( int N, int M[] ){
/* IDEA 3 :
For every number Mi[ xxxxxxxx ]
Produce four numbers Ei[ xxxx yy zz ]
where 0 <= xxxx < 16 , 0 <= yy < 4 , 0 <= zz < 4
xxxx is i in binary form
zz is bit 2*yy and bit 2*yy+1 from Mi
*/
// for(int i=0;i<N;i++){
// cout << M[i] << ' ' << bitset<8>(M[i]) << endl;
// }
for(int i=0;i<N;i++){
int S = i << 4;
for(int j=0;j<4;j++){
int xxxx = i << 4;
int yy = j << 2;
bool a = ( M[i] & ( 1 << 2*j ) );
bool b = ( M[i] & ( 1 << (2*j+1) ) );
int Sv = xxxx | yy | a | (b<<1);
send( Sv );
// std::cout << std::bitset<8>(Sv) << std::endl;
}
}
// std::cout << std::endl;
}
#include "decoder.h"
#include "decoderlib.h"
#include <bits/stdc++.h>
using namespace std;
void decode(int N, int L, int X[]){
/* IDEA 3 :
For every number Mi[ xxxxxxxx ]
Produce four numbers Ei[ xxxx yy zz ]
where 0 <= xxxx < 16 , 0 <= yy < 4 , 0 <= zz < 4
xxxx is i in binary form
zz is bit 2*yy and bit 2*yy+1 from Mi
*/
int A[N] = {};
for(int i=0;i<L;i++){
int x = X[i];
int idx = 0;
for(int j=7;j>=4;j--) idx |= x & ( 1 << j );
idx >>= 4;
int part = 0;
for(int j=3;j>=2;j--) part |= x & ( 1 << j );
part >>= 2;
int msg = 0;
for(int j=1;j>=0;j--) msg |= x & ( 1 << j );
A[idx] |= msg << (2*part);
// std::cout << std::bitset<8>(x) << std::endl;
// std::cout << std::bitset<4>(idx) << ' ' << std::bitset<2>(part) << ' ' << std::bitset<2>(msg) << std::endl;
}
// for(int i=0;i<N;i++) cout << bitset<8>(A[i]) << endl;
for(int i=0;i<N;i++) output( A[i] );
}
Compilation message (stderr)
encoder.cpp: In function 'void encode(int, int*)':
encoder.cpp:26:7: warning: unused variable 'S' [-Wunused-variable]
int S = i << 4;
^
# | 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... |