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"
#ifndef EVAL
#include "grader.cpp"
#endif
#include <bits/stdc++.h>
using namespace std;
void encode(int N, int M[]){
vector<int> ans(N*8);
for(int i=0;i<N;i++){
for(int j=0;j<8;j++){
ans[i*8 + j] = (M[i]>>j & 1);
}
}
for(int i=1;i<8*N;i++){
ans[i] += ans[i-1];
}if(ans[0]){
for(int i=0;i<8*N;i++){
send(ans[i] - 1);
}send(255);
}else{
for(int i=0;i<8*N;i++) send(ans[i]);
}
}
#include "decoder.h"
#include "decoderlib.h"
#ifndef EVAL
#include "grader.cpp"
#endif
#include <bits/stdc++.h>
using namespace std;
void decode(int n, int l, int ans[]){
sort(ans, ans+l);
//for(int i=0;i<l;i++) cout<<ans[i]<<" ";
if(l > n*8) for(int i=0;i<n*8;i++) ans[i]++;
//cout<<"\n"<<n*8<<" "<<l<<"\n";
for(int i=0;i<n*8;){
int tmp = 0;
for(int j=0;j<8; i++, j++){
int xx = ans[i];
if(i) xx -= ans[i-1];
if(xx) tmp |= (1<<j);
}
output(tmp);
}
}
# | 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... |