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"
void encode(int N, int M[])
{
int i;
if (N > 32) {
int mask = 0x000f;
for (i = 0; i < N; i++) {
int seq = i << 2;
int temp = M[i]&mask;
for (int j = 0; j < 4; j++) {
if (temp & 1) {
send(seq + j);
}
temp >>= 1;
}
temp = (M[i] >> 4)&mask;
for (int j = 0; j < 4; j++) {
if (temp & 1) {
send(seq + j);
send(seq + j);
}
temp >>= 1;
}
}
return;
}
for (i = 0; i < N; i++) {
int seq = i << 3;
int temp = M[i];
for (int j = 0; j < 8; j++) {
if (temp & 1) {
send(seq + j);
}
temp >>= 1;
}
}
}
#include "decoder.h"
#include "decoderlib.h"
#include<algorithm>
#include<vector>
using namespace std;
void decode(int N, int L, int X[])
{
int i, mask = 0x0007, mask2 = 0x0003;
int b[64];
for (int i = 0; i < 64; i++)
b[i] = 0;
sort(X, X + L);
int seq = 0, ans = 0;
if (N > 32) {
vector<int> Y;
int temp = ((X[0] >> 2) << 3) + (X[0] & mask2);
Y.push_back(temp);
for (i = 1; i < L; i++) {
temp = ((X[i] >> 2) << 3) + (X[i] & mask2);
if (temp^Y.back()) {
Y.push_back(temp);
continue;
}
Y.pop_back();
Y.push_back(temp + 4);
}
sort(Y.begin(), Y.end());
for (i = 0; i < Y.size(); i++) {
if ((Y[i] >> 3) ^ seq) {
b[seq] = ans;
ans = 0;
seq = Y[i] >> 3;
}
ans += (1 << (Y[i] & mask));
}
b[seq] = ans;
for (i = 0; i < N; i++)
output(b[i]);
return;
}
for(i=0; i<L; i++) {
if ((X[i] >> 3)^seq) {
b[seq] = ans;
ans = 0;
seq = X[i] >> 3;
}
ans += (1 << (X[i] & mask));
}
b[seq] = ans;
for (int i = 0; i < N; i++)
output(b[i]);
}
Compilation message (stderr)
decoder.cpp: In function 'void decode(int, int, int*)':
decoder.cpp:36:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (i = 0; i < Y.size(); 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... |