#include "encoder.h"
#include "encoderlib.h"
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using vll = vector <ll>;
using ii = pair <ll, ll>;
using vii = vector <ii>;
void encode (int n, int m[]) {
auto f = [&](ll id) {
return m[id/8]>>(id%8)&1;
};
ll cou0 = 0, cou1 = 0;
for (ll id = 0; id < 8*n; id++) {
(f(id) ? cou1 : cou0)++;
}
if (cou0 <= cou1) {
for (ll id = 0; id < 8*n; id++) {
if (!f(id)) send(id);
}
send(0);
send(0);
} else {
for (ll id = 0; id < 8*n; id++) {
if (f(id)) send(id);
}
}
}
#include "decoder.h"
#include "decoderlib.h"
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using vll = vector <ll>;
using ii = pair <ll, ll>;
using vii = vector <ii>;
void decode (int n, int l, int x[]) {
vll uh;
auto f = [&](ll id) {
uh[id/8] ^= 1<<(id%8);
};
if (count(x, x+l, 0) >= 2) { // cou0 <= cou1
uh = vll(n, 0b11111111);
for (ll i = 0; i < l; i++) {
f(x[i]);
}
} else {
uh = vll(n, 0b00000000);
for (ll i = 0; i < l; i++) {
f(x[i]);
}
}
for (ll i = 0; i < n; i++) {
output(uh[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... |