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;
void encode(int n, int b[]) {
vector<int> m[2];
for(int f = 0; f < 2; f++)
for(int i = 0; i < n; i++) {
int t = b[i], g = 0;
if(f) t ^= 255;
while(t) {
while(t&3) {
m[f].push_back(4*i + g);
t--;
}
t>>=2;
g++;
}
}
for(int i = 0; i < n; i++) m[1].push_back(69);
if(m[0].size() > m[1].size()) swap(m[0], m[1]);
for(auto i : m[0]) send(i);
//for(auto i : m[0]) cout << i << " "; cout << '\n';
}
#include "decoder.h"
#include "decoderlib.h"
#include<bits/stdc++.h>
using namespace std;
void decode(int n, int l, int X[]) {
vector<int> res(n);
map<int, int> cnt;
for(int i = 0; i < l; i++) cnt[X[i]]++;
int rev = 0;
for(auto i : cnt) {
if(i.second >= n) i.second -= n, rev = 255;
res[i.first/4] += i.second<<(2*(i.first&3));
}
for(int i = 0; i < n; i++) output(res[i]^rev);
}
# | 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... |