# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
17128 | murat | 앵무새 (IOI11_parrots) | C++98 | 0 ms | 0 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "encoder.h"
#include "encoderlib.h"
#include<bits/stdc++.h>
using namespace std;
void encode(int N, int M[]) {
int c = 0, t;
vector< int > v[5];
int P[500] = {0};
int cc[2][500] = {0};
for(int i=0; i<N; i++) {
int tt = M[i];
for(int j = 0; j < 8; j+=2) {
P[c] = (tt >> (6-j)) & 3;
cc[1][3-P[c]]++;
cc[0][P[c]]++;
c++;
}
}
int t1 = cc[0][1] + cc[0][1] * 2 + cc[0][3] * 3;
int t2 = cc[1][1] + cc[1][2] * 2 + cc[1][3] * 3;
int w = 0;
if(t2 < t1) w = 1;
send(w); send(w);
send(w); send(w);
for(int i = 0; i < c; i++) {
if(w) P[i] = 3 - P[i];
while(P[i]--) {
send(i);
}
}
}
#include<bits/stdc++.h>
using namespace std;
void decode(int N, int L, int X[]) {
int cc[500] = {0}, t = 0;
for(int i=0; i<L; i++) cc[X[i]]++;
int w = 0;
if(cc[0] > 3) { cc[0] -= 4; w = 0;}
if(cc[1] > 3) { cc[1] -= 4; w = 1;}
for(int i = 0; i < N * 4; i++) {
if(w) cc[i] = 3 - cc[i];
if(i % 4 == 3) {
int t = 64 * cc[i-3] + 16 * cc[i-2] + 4 * cc[i-1] + cc[i];
output(t);
}
}
}