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"
int encode4(int i) {
if (i < 8) return i;
return (i >> 3) + 8;
}
/*
void sendDebug(int i, int j) {
printf("send (%d,%d) ", i, j);
while(j > 1){
if (j % 2 == 0) {
printf("0");
}
else {
printf("1");
j--;
}
j /= 2;
}
printf("1\n");
}
*/
void encode(int N, int M[]){
int i, position, value;
for (i = 0; i < N; i++) {
position = encode4(i) << 4;
while(M[i] > 0) {
if (M[i] >= 56) {
//sendDebug(i, position + encode4(56));
send(position + encode4(56));
M[i] -= 56;
}
else {
value = 0;
if (M[i] >= 32) {
value += 32;
M[i] -= 32;
}
if (M[i] >= 16) {
value += 16;
M[i] -= 16;
}
if (M[i] >= 8) {
value += 8;
M[i] -= 8;
}
if (value > 0) {
//sendDebug(i, position + encode4(value));
send(position + encode4(value));
}
value = M[i];
M[i] -= M[i];
//sendDebug(i, position + encode4(value));
send(position + encode4(value));
break;
}
}
}
}
#include "decoder.h"
#include "decoderlib.h"
int decode4(int i) {
if (i < 8) return i;
else return (i - 8) << 3;
}
int result[64];
void decode(int N, int L, int X[]){
int i, position, value;
for (i = 0; i < N; i++) result[i] = 0;
for (i = 0; i < L; i++) {
//printf("Get %d / ", X[i]);
position = decode4(X[i] >> 4);
if(position > 0) X[i] -= position << 4;
result[position] += decode4(X[i]);
//printf("decode [%d] = %d\n", position, result[position]);
}
//for (i = 0; i < N; i++) printf("[%d]=%d\n", i, result[i]);
for (i = 0; i < N; i++) output(result[i]);
}
Compilation message (stderr)
decoder.cpp: In function 'void decode(int, int, int*)':
decoder.cpp:11:19: warning: unused variable 'value' [-Wunused-variable]
int i, position, value;
^~~~~
# | 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... |