# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
796006 | hgmhc | 앵무새 (IOI11_parrots) | C++17 | 0 ms | 0 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#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;
static const int N = 20;
static int ans[N];
void decode(int n, int l, int x[])
{
fill(ans,ans+N,0);
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