#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>
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) {
for (i = 0; i < L-1; ) {
if ((X[i] >> 2) ^ seq) {
b[seq] = ans;
ans = 0;
seq = X[i] >> 2;
continue;
}
if ((X[i] & mask2)^(X[i+1] & mask2)) {
ans += (1 << (X[i] & mask2));
}
else {
ans += ((1 << (X[i] & mask2)) << 4);
i++;
}
i++;
}
if (i < L) {
ans += (1 << (X[L-1] & mask2));
}
b[seq] = ans;
for (int 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]);
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
4 ms |
752 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
5 ms |
1600 KB |
Output is correct |
2 |
Correct |
6 ms |
1712 KB |
Output is correct |
3 |
Correct |
6 ms |
1840 KB |
Output is correct |
4 |
Correct |
7 ms |
1912 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
5 ms |
1912 KB |
Output is correct |
2 |
Correct |
5 ms |
2304 KB |
Output is correct |
3 |
Correct |
6 ms |
2304 KB |
Output is correct |
4 |
Correct |
6 ms |
2304 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
5 ms |
2304 KB |
Output is correct |
2 |
Correct |
5 ms |
2304 KB |
Output is correct |
3 |
Correct |
7 ms |
2304 KB |
Output is correct |
4 |
Correct |
9 ms |
2304 KB |
Output is correct |
5 |
Correct |
7 ms |
2304 KB |
Output is correct |
6 |
Correct |
8 ms |
2304 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Partially correct |
7 ms |
2304 KB |
Output is partially correct - P = 8.000000 |
2 |
Partially correct |
8 ms |
2304 KB |
Output is partially correct - P = 8.000000 |
3 |
Incorrect |
6 ms |
2304 KB |
Error : Output is wrong |
4 |
Incorrect |
9 ms |
2304 KB |
Error : Output is wrong |
5 |
Incorrect |
26 ms |
2432 KB |
Error : Output is wrong |
6 |
Incorrect |
11 ms |
2432 KB |
Error : Output is wrong |
7 |
Incorrect |
12 ms |
2440 KB |
Error : Output is wrong |