# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
883451 | dejandenib | 앵무새 (IOI11_parrots) | C++17 | 0 ms | 0 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
#include "encoder.h"
#include "encoderlib.h"
using namespace std;
void encode(int n, int a[])
{
for(int i =0;i<n;i++)
{
int k;
k = 0;
int tosend = 0;
int x = i;
for (int j=0;j<5;j++)
{
if ((i & (1<<j))>0)
{
tosend+=1<<k;
}
k+=1;
}
tosend<<=3;
for (int j=0;j<8;j++)
{
if ( (a[i] & (1<<j))>0)
{
send(tosend+j);
}
}
}
}
void decode(int n,int howmany2,int a[]){
int to_be_output[321];
for (int i =0;i<n;i++)
to_be_output[i]=0;
for(int i = 0;i<howmany2;i++)
{
int value = 0;
int k = 0;
for (int j = 0;j<3;j++)
{
if (a[i] %2==1)
value+=1<<k;
k+=1;
a[i]=a[i]/2;
}
value = 1<<value;
int position=0;
k = 0;
for (int j = 0;j<5;j++)
{
if (a[i] %2==1)
position+=1<<k;
k+=1;
a[i]=a[i]/2;
}
to_be_output[position]+=value;
}
for(int i =0;i<n;i++)
output(to_be_output[i]);
}
#include <bits/stdc++.h>
#include "encoder.h"
#include "encoderlib.h"
using namespace std;
void encode(int n, int a[])
{
for(int i =0;i<n;i++)
{
int k;
k = 0;
int tosend = 0;
int x = i;
for (int j=0;j<5;j++)
{
if ((i & (1<<j))>0)
{
tosend+=1<<k;
}
k+=1;
}
tosend<<=3;
for (int j=0;j<8;j++)
{
if ( (a[i] & (1<<j))>0)
{
send(tosend+j);
}
}
}
}
void decode(int n,int howmany2,int a[]){
int to_be_output[321];
for (int i =0;i<n;i++)
to_be_output[i]=0;
for(int i = 0;i<howmany2;i++)
{
int value = 0;
int k = 0;
for (int j = 0;j<3;j++)
{
if (a[i] %2==1)
value+=1<<k;
k+=1;
a[i]=a[i]/2;
}
value = 1<<value;
int position=0;
k = 0;
for (int j = 0;j<5;j++)
{
if (a[i] %2==1)
position+=1<<k;
k+=1;
a[i]=a[i]/2;
}
to_be_output[position]+=value;
}
for(int i =0;i<n;i++)
output(to_be_output[i]);
}