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, position;
for (i = 0; i < N; i++) {
position = i << 3;
for (; M[i] >= 200; M[i] -= 200) send(position + 7);
for (; M[i] >= 100; M[i] -= 100) send(position + 6);
for (; M[i] >= 30; M[i] -= 30) send(position + 5);
for (; M[i] >= 20; M[i] -= 20) send(position + 4);
for (; M[i] >= 10; M[i] -= 10) send(position + 3);
for (; M[i] >= 3; M[i] -= 3) send(position + 2);
for (; M[i] >= 2; M[i] -= 2) send(position + 1);
for (; M[i] >= 1; M[i] -= 1) send(position);
}
}
#include "decoder.h"
#include "decoderlib.h"
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++) {
position = X[i] >> 3;
value = X[i] - (position << 3);
if (value == 0) result[position] += 1;
else if (value == 1) result[position] += 2;
else if (value == 2) result[position] += 3;
else if (value == 3) result[position] += 10;
else if (value == 4) result[position] += 20;
else if (value == 5) result[position] += 30;
else if (value == 6) result[position] += 100;
else if (value == 7) result[position] += 200;
}
for (i = 0; i < N; i++) output(result[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... |