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<cstdio>
#include<cstring>
int colocar[600];
void encode(int N, int M[])
{
memset(colocar, 0, sizeof colocar);
int ptr = 0;
for(int i = 0; i < N; i++) {
for(int bit = 0; bit < 8; bit++)
if(M[i]&(1<<bit))
colocar[8*i+bit] = 1, ptr++;
}
if(ptr > 256) {
send(0), send(0);
for(int i = 0; i < 512; i++)
colocar[i] = !colocar[i];
}
for (int i = 0; i < 512; i++)
if(colocar[i])
send(i);
}
#include "decoder.h"
#include "decoderlib.h"
#include<cstdio>
#include<cstring>
#include<algorithm>
int BIT[10000];
void decode(int N, int L, int X[])
{
std::sort(X, X+L);
int start = 0, ok = 1;
if(L > 1 && X[1] == 0)
start = 2, ok = 0;
memset(BIT, 0, sizeof BIT);
for(int i = start; i < L; i++)
BIT[X[i]] = 1;
for(int i = 0; i < N; i++) {
int here = 0;
for(int bit = 0; bit < 8; bit++) {
if(BIT[8*i+bit] == ok)
here += (1 << bit);
}
output(here);
}
}
# | 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... |