#include "encoder.h"
#include "encoderlib.h"
#include <stdio.h>
#include <algorithm>
using namespace std;
const int sz=90;
const int H=576;
struct Number
{
int a[sz];
void init(){ for(int i=0;i<sz;i++) a[i]=0;}
Number(){ init();}
Number operator + (Number b) const
{
Number c;c.init();
for(int i=0;i<sz;i++)
{
c.a[i]+=a[i]+b.a[i];
if(c.a[i]>255) c.a[i]-=256,c.a[i+1]++;
}
return c;
}
bool operator < (Number b) const
{
int i;
for(i=sz-1;~i;i--)
{
if(a[i]<b.a[i]) return 1;
if(b.a[i]<a[i]) return 0;
}
return 0;
}
} binom[H][H];
bool done=0;
void encode(int n, int *m)
{
int i,j;
if(!done)
{
for(i=0;i<H;i++) for(j=0;j<H;j++) binom[i][j].init();
for(i=1;i<H;i++)
{
binom[i][0].a[0]=1;
for(j=1;j<=i;j++)
{
binom[i][j]=binom[i-1][j-1]+binom[i-1][j];
}
}
done=1;
}
Number my;my.init();
for(i=0;i<n;i++) my.a[i]=m[i];
Number sub;sub.init();
int go=5*n+255;
for(i=0;i<n*5;i++)
{
while(my<(binom[go][5*n-i]+sub)) go--;
send(5*n+255-go-1-i);
sub=sub+binom[go][5*n-i];
go--;
}
}
#include "decoder.h"
#include "decoderlib.h"
#include <stdio.h>
#include <algorithm>
using namespace std;
const int sz=90;
const int H=576;
struct Number
{
int a[sz];
void init(){ for(int i=0;i<sz;i++) a[i]=0;}
Number(){ init();}
Number operator + (Number b) const
{
Number c;c.init();
for(int i=0;i<sz;i++)
{
c.a[i]+=a[i]+b.a[i];
if(c.a[i]>255) c.a[i]-=256,c.a[i+1]++;
}
return c;
}
bool operator < (Number b) const
{
int i;
for(i=sz-1;~i;i--)
{
if(a[i]<b.a[i]) return 1;
if(b.a[i]<a[i]) return 0;
}
return 0;
}
} binom[H][H];
bool done=0;
void decode(int n, int l, int *m)
{
int i,j;
if(!done)
{
for(i=0;i<H;i++) for(j=0;j<H;j++) binom[i][j].init();
for(i=1;i<H;i++)
{
binom[i][0].a[0]=1;
for(j=1;j<=i;j++)
{
binom[i][j]=binom[i-1][j-1]+binom[i-1][j];
}
}
done=1;
}
Number my;my.init();
sort(m,m+l);
for(i=0;i<l;i++)
{
int x=m[i];
int go=5*n+255-x-i-1;
my=my+binom[go][5*n-i];
}
for(i=0;i<n;i++) output(my.a[i]);
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
396 ms |
234500 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
421 ms |
235344 KB |
Output is correct |
2 |
Correct |
434 ms |
235680 KB |
Output is correct |
3 |
Correct |
419 ms |
235680 KB |
Output is correct |
4 |
Correct |
421 ms |
235872 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
454 ms |
235872 KB |
Output is correct |
2 |
Correct |
402 ms |
235872 KB |
Output is correct |
3 |
Correct |
441 ms |
236056 KB |
Output is correct |
4 |
Correct |
464 ms |
236056 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
486 ms |
236056 KB |
Output is correct |
2 |
Correct |
522 ms |
236056 KB |
Output is correct |
3 |
Correct |
449 ms |
236056 KB |
Output is correct |
4 |
Correct |
468 ms |
236128 KB |
Output is correct |
5 |
Correct |
499 ms |
236128 KB |
Output is correct |
6 |
Correct |
448 ms |
236128 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
494 ms |
236128 KB |
Output is correct - P = 5.000000 |
2 |
Correct |
500 ms |
236128 KB |
Output is correct - P = 5.000000 |
3 |
Correct |
504 ms |
236128 KB |
Output is correct - P = 5.000000 |
4 |
Correct |
550 ms |
236160 KB |
Output is correct - P = 5.000000 |
5 |
Correct |
505 ms |
236160 KB |
Output is correct - P = 5.000000 |
6 |
Correct |
490 ms |
236160 KB |
Output is correct - P = 5.000000 |
7 |
Correct |
474 ms |
236160 KB |
Output is correct - P = 5.000000 |