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;
void encode(int n, int a[])
{
for (int i = 0; i < n; ++i) {
// cerr << a[i] << " -> {";
for (int j = 0; j < 4; ++j) {
send(i | (j << 4) | ((a[i]>>(2*j)&0b11) << 6));
// cerr << (j?", ":"")<< bitset<2>((a[i]>>(2*j)&0b11));
}
// cerr<<"}\n";
}
}
// send에 8bit 표현
// a[i] < 2^8
// ?? / ?? / ?? / ??
// 00 / 01 / 10 / 11
// 4bit + (2+2)bit
#include "decoder.h"
#include "decoderlib.h"
#include <bits/stdc++.h>
using namespace std;
const int N = 20;
int ans[N];
void decode(int n, int l, int x[])
{
for (int k = 0; k < l; ++k) {
int i = x[k]&0b1111;
int j = x[k]>>4&0b11;
int v = x[k]>>6&0b11;
ans[i] |= v<<(2*j);
// cerr << bitset<4>(i) << ' ' << bitset<2>(j) << ' ' << bitset<2>(v) << endl;
}
for (int i = 0; i < n; ++i)
output(ans[i]);
}
// ans[i] < 2^8
// g++-13 grader.cpp encoder.cpp decoder.cpp -o par && ./par < grader.in.1
# | 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... |