# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
497287 | Ozy | 앵무새 (IOI11_parrots) | C++17 | 0 ms | 0 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "decoder.h"
#include "decoderlib.h"
#include <bits/stdc++.h>
using namespace std;
#define lli long long int
#define rep(i,a,b) for(int i = (a); i <= (b); i++)
#define repa(i,a,b) for(int i = (a); i >= (b); i--)
#define debug(a) cout << #a << " = " << a << endl
#define debugsl(a) cout << #a << " = " << a << ", "
void decode(int N, int L, int X[])
{
lli num[70][4],n,a,b,pos;
n = N;
lli cont = 0;
rep(i,0,L) if (X[i] == 0) cont++;
if (cont > 3) {
rep(i,0,n-1) {
rep(j,0,3) num[i][j] = 0;
}
cont=4;
rep(i,0,L-1) {
if (X[i] == 0 && cont > 0) {
cont--;
continue;
}
a = X[i];
pos = a>>2;
b = (a&3);
num[pos][b]++;
//debugsl(a);
//debugsl(pos);
//debugsl(b);
//debug(num[pos][b]);
}
rep(i,0,n-1) {
a = 0;
a += num[i][0];
a += num[i][1] * 4;
a += num[i][2] * 16;
a += num[i][3] * 64;
output(a);
}
}
else {
rep(i,0,n-1) {
rep(j,0,3) num[i][j] = 3;
}
rep(i,0,L-1) {
a = X[i];
pos = a>>2;
b = (a&3);
num[pos][b]--;
//debugsl(a);
//debugsl(pos);
//debugsl(b);
//debug(num[pos][b]);
}
rep(i,0,n-1) {
a = 0;
a += num[i][0];
a += num[i][1] * 4;
a += num[i][2] * 16;
a += num[i][3] * 64;
output(a);
}
}
}