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 <algorithm>
void encode(int N, int M[])
{
for(int i=0; i<std::min(32,N); i++){
int x = M[i];
for( int j = 0; j < 8; j ++ ){
if( (x&(1<<j)) ){
send((i<<3)+j);
}
}
}
for( int i = std::min(32,N); i < N; i ++ ){
int x = M[i];
for( int j = 0; j < 8; j ++ ){
if( (x&(1<<j)) ){
send(((i-32)<<3)+j);
send(((i-32)<<3)+j);
}
}
}
}
#include "decoder.h"
#include "decoderlib.h"
#include <algorithm>
void decode(int N, int L, int X[])
{
int cnt[N][10]={};
for( int i = 0; i < L; i ++ ){
int x = X[i];
int y = x % 8;
int z = (x / 8);
cnt[z][y] ++;
}
int ans[N] = {};
for( int i = 0; i < std::min(32,N); i ++ ){
for( int j = 0; j < 8; j ++ ){
if( cnt[i][j] == 1 || cnt[i][j] == 3){
ans[i] += (1<<j);
}
if( cnt[i][j] == 2 || cnt[i][j] == 3){
ans[i+32] += (1<<j);
}
}
}
for( int i = 0; i < N; i ++ ){
output(ans[i]);
}
}
# | 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... |