#include "encoder.h"
#include "encoderlib.h"
#include <stdio.h>
void encode(int N, int M[]){
int i,j,tt;
int tmp[100];
int bit[100];
for(i=0; i<N; i++) tmp[i] = M[i];
if(N <= 32){
for(i=0; i<N; i++){
j = -1;
while(M[i] != 0){
tt = M[i] % 2;
M[i] /= 2;
j++;
if(tt == 0) continue;
send(8*i+j);
}
}
for(i=0; i<N; i++) M[i] = tmp[i];
return;
}
int dp[7][7][7][7];
int a,b,c,d;
int cnt = -1;
struct data{
int a,b,c,d;
}memo[500];
for(tt=0; tt<=6; tt++) for(a=0; a<=tt; a++) for(b=0; b<=tt-a; b++) for(c=0; c<=tt-a-b; c++){cnt++; d = tt-a-b-c;dp[a][b][c][d] = cnt; memo[cnt].a = a;memo[cnt].b = b;memo[cnt].c = c;memo[cnt].d = d; }
for(i=0; i<N; i++){
cnt = M[i];
for(j=1; j<=memo[cnt].a; j++) send(i*4+0);
for(j=1; j<=memo[cnt].b; j++) send(i*4+1);
for(j=1; j<=memo[cnt].c; j++) send(i*4+2);
for(j=1; j<=memo[cnt].d; j++) send(i*4+3);
}
for(i=0; i<N; i++) M[i] = tmp[i];
}
#include "decoder.h"
#include "decoderlib.h"
#include <algorithm>
#include <stdlib.h>
#include <stdio.h>
using namespace std;
void decode(int N, int L, int X[]){
int i,j;
int t1,t2;
int ans[100];
int tmp[100][4];
int dp[7][7][7][7];
int a,b,c,d,tt;
int cnt = -1;
for(tt=0; tt<=6; tt++){
for(a=0; a<=tt; a++) for(b=0; b<=tt-a; b++) for(c=0; c<=tt-a-b; c++){ cnt++; d = tt-a-b-c; dp[a][b][c][d] = cnt; }
}
if(N <= 32){
for(i=0; i<N; i++) ans[i] = 0;
for(i=0; i<L; i++){
t1 = X[i] / 8;
t2 = X[i] % 8;
ans[t1] += (1 << t2);
}
for(i=0; i<N; i++){
output(ans[i]);
}
return;
}
for(i=0; i<N; i++) for(j=0; j<4; j++) tmp[i][j] = 0;
for(i=0; i<L; i++){ t1 = X[i] / 4; t2 = X[i] % 4; tmp[t1][t2]++; }
for(i=0; i<N; i++) ans[i] = 0;
for(i=0; i<N; i++){
ans[i] = dp[tmp[i][0]][tmp[i][1]][tmp[i][2]][tmp[i][3]];
}
for(i=0; i<N; i++) output(ans[i]);
}
Compilation message
encoder.cpp: In function 'void encode(int, int*)':
encoder.cpp:8:6: warning: unused variable 'bit' [-Wunused-variable]
int bit[100];
^~~
encoder.cpp:26:6: warning: variable 'dp' set but not used [-Wunused-but-set-variable]
int dp[7][7][7][7];
^~
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
4 ms |
752 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
4 ms |
1592 KB |
Output is correct |
2 |
Correct |
5 ms |
1592 KB |
Output is correct |
3 |
Correct |
5 ms |
1744 KB |
Output is correct |
4 |
Correct |
6 ms |
1912 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
4 ms |
1912 KB |
Output is correct |
2 |
Correct |
4 ms |
1912 KB |
Output is correct |
3 |
Correct |
5 ms |
1912 KB |
Output is correct |
4 |
Correct |
6 ms |
1912 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
4 ms |
2064 KB |
Output is correct |
2 |
Correct |
6 ms |
2096 KB |
Output is correct |
3 |
Correct |
6 ms |
2128 KB |
Output is correct |
4 |
Correct |
7 ms |
2128 KB |
Output is correct |
5 |
Correct |
7 ms |
2128 KB |
Output is correct |
6 |
Correct |
6 ms |
2128 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Partially correct |
5 ms |
2128 KB |
Output is partially correct - P = 8.000000 |
2 |
Partially correct |
7 ms |
2128 KB |
Output is partially correct - P = 8.000000 |
3 |
Incorrect |
4 ms |
2128 KB |
Error : Encoded message too long |
4 |
Incorrect |
4 ms |
2128 KB |
Error : Encoded message too long |
5 |
Incorrect |
4 ms |
2128 KB |
Error : Encoded message too long |
6 |
Incorrect |
4 ms |
2128 KB |
Error : Encoded message too long |
7 |
Incorrect |
4 ms |
2128 KB |
Error : Encoded message too long |