이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#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 |
---|
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... |