#include "encoder.h"
#include "encoderlib.h"
#include <cstdio>
#include <cstring>
using namespace std;
struct bignum{
short arr[100];
void init(char i){
memset(arr,0,sizeof(arr));
arr[0] = i;
}
};
bignum operator+(bignum a, bignum b){
for (int i=0; i<100; i++) {
a.arr[i] += b.arr[i];
if(a.arr[i] >= 256) {
a.arr[i] -= 256;
a.arr[i+1] ++;
}
}
return a;
}
bool operator<(bignum a, bignum b){
for (int i=99; i>=0; i--) {
if(a.arr[i] < b.arr[i]) return 1;
if(a.arr[i] > b.arr[i]) return 0;
}
return 0;
}
bignum bino[600][600];
void encode(int N, int* M){
for (int i=0; i<600; i++) {
bino[i][0].init(1);
for (int j=1; j<=i; j++) {
bino[i][j] = bino[i-1][j] + bino[i-1][j-1];
}
for (int j=i+1; j<600; j++) {
bino[i][j].init(0);
}
}
bignum t, base;
for (int i=0; i<N; i++) {
t.arr[i] = M[i];
}
base.init(2);
t = t + base;
base.init(0);
int cnt = 0;
while (cnt < 5 * N){
int length = 5 * N - cnt;
while (bino[length+1][5 * N - cnt] + base < t) {
length++;
}
send(5 * N + 255 - length - cnt);
base = base + bino[length - 1][5 * N - cnt];
cnt++;
}
}
#include "decoder.h"
#include "decoderlib.h"
#include <algorithm>
#include <cstdio>
#include <cstring>
using namespace std;
struct bignum{
short arr[100];
void init(char i){
memset(arr,0,sizeof(arr));
arr[0] = i;
}
};
bignum operator+(bignum a, bignum b){
for (int i=0; i<100; i++) {
a.arr[i] += b.arr[i];
if(a.arr[i] >= 256) {
a.arr[i] -= 256;
a.arr[i+1] ++;
}
}
return a;
}
bool operator<(bignum a, bignum b){
for (int i=99; i>=0; i--) {
if(a.arr[i] < b.arr[i]) return 1;
if(a.arr[i] > b.arr[i]) return 0;
}
return 0;
}
bignum bino[600][600];
void decode(int N, int L, int X[])
{
for (int i=0; i<600; i++) {
bino[i][0].init(1);
for (int j=1; j<=i; j++) {
bino[i][j] = bino[i-1][j] + bino[i-1][j-1];
}
for (int j=i+1; j<600; j++) {
bino[i][j].init(0);
}
}
sort(X,X+L);
reverse(X,X+L);
bignum ret;
ret.init(0);
for (int i=0; i<L; i++) {
ret = ret + bino[5 * N + 255 - X[i] - i-1][5 * N - i];
}
for (int i=0; i<N; i++) {
output(ret.arr[i]);
}
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1398 ms |
141888 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Execution timed out |
2082 ms |
71216 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Execution timed out |
2079 ms |
71216 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Execution timed out |
2066 ms |
71240 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
177 ms |
142480 KB |
Error : Bad encoded integer |
2 |
Incorrect |
192 ms |
142480 KB |
Error : Bad encoded integer |
3 |
Incorrect |
185 ms |
142480 KB |
Error : Bad encoded integer |
4 |
Incorrect |
189 ms |
142480 KB |
Error : Bad encoded integer |
5 |
Incorrect |
190 ms |
142480 KB |
Error : Bad encoded integer |
6 |
Incorrect |
231 ms |
142480 KB |
Error : Bad encoded integer |
7 |
Incorrect |
195 ms |
142480 KB |
Error : Bad encoded integer |