#include "encoder.h"
#include "encoderlib.h"
//#include <bitset>
//#include <iostream>
void encode(int N, int M[])
{
int i;
for(i=0; i<N; i++) {
// separate into 2 bit chunk
int p1 = M[i] >> 6;
int p2 = (M[i] >> 4) & 3;
int p3 = (M[i] >> 2) & 3;
int p4 = (M[i] & 3);
/*
std::cout<<std::bitset<8>(M[i])<<"-> ";
std::cout<<std::bitset<2>(p1)<<' ';
std::cout<<std::bitset<2>(p2)<<' ';
std::cout<<std::bitset<2>(p3)<<' ';
std::cout<<std::bitset<2>(p4)<<'\n';
std::cout<<"->";
std::cout<<std::bitset<8>(4*i << 2 | p1)<<' ';
std::cout<<std::bitset<8>(4*i+1 << 2 | p2)<<' ';
std::cout<<std::bitset<8>(4*i+2 << 2 | p3)<<' ';
std::cout<<std::bitset<8>(4*i+3 << 2 | p4)<<'\n';
*/
send(4*i << 2 | p1);
send(4*i+1 << 2 | p2);
send(4*i+2 << 2 | p3);
send(4*i+3 << 2 | p4);
}
}
#include "decoder.h"
#include "decoderlib.h"
#include <vector>
//#include <iostream>
//#include <bitset>
void decode(int N, int L, int X[])
{
int i, b, p;
std::vector<int> vl(N);
for(i=0; i<L; i++) {
b = X[i] & 3;
p = X[i] >> 2;
//std::cout<<(std::bitset<8>(X[i]))<<"->";
//std::cout<<"p="<<p<<", "<<"b="<<b<<'\n';
//std::cout<<"vl["<<p/4<<"]="<<(std::bitset<8>(vl[p/4]))<<"->";
vl[p/4] |= (b << (2 * (3 - p%4)));
//std::cout<<std::bitset<8>(vl[p/4])<<'\n';
}
for(auto &c:vl) output(c);
}
# | 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... |