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<bits/stdc++.h>
using namespace std;
#define rep(a, b) for(int a = 0; a < (b); ++a)
void encode(int n, int T[]) {
rep(i, n) {
int ile=0, x=T[i];
while(x) {
ile+=x&1;
x/=2;
}
if(ile<=4) {
rep(j, 8) if(T[i]&(1<<j)) send(i+64*j);
} else {
send(i);
send(i);
rep(j, 8) if(!(T[i]&(1<<j))) send(i+64*j);
}
}
}
#include "decoder.h"
#include "decoderlib.h"
#include<bits/stdc++.h>
using namespace std;
#define rep(a, b) for(int a = 0; a < (b); ++a)
#define pb push_back
void decode(int n, int l, int T[]) {
vector<int>V[100];
rep(i, l) V[T[i]%64].pb(T[i]/64);
rep(i, n) {
int ile[8];
rep(j, 8) ile[j]=0;
for(auto j : V[i]) ++ile[j];
if(ile[0]>=2) {
ile[0]-=2;
rep(j, 8) ile[j]^=1;
}
int ans=0;
rep(j, 8) ans+=ile[j]*(1<<j);
output(ans);
}
}
# | 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... |