Submission #92159

#TimeUsernameProblemLanguageResultExecution timeMemory
92159Bodo171Parrots (IOI11_parrots)C++14
Compilation error
0 ms0 KiB
#include "encoder.h" #include "encoderlib.h" #include <iostream> using namespace std; const int base=(1<<8); const int nm=325,mm=275,cifmax=600; static int dp[nm][mm][cifmax],sum[nm][mm][cifmax]; static int cost[cifmax],A[cifmax],aux[cifmax]; static int unu[cifmax],zr[cifmax]; static int v[nm]; static int i,j,poz,p,n,m,k; void add(int A[],int B[]) { A[0]=max(A[0],B[0]); for(int idx=1;idx<=A[0];idx++) { A[idx]+=B[idx]; if(A[idx]>=base) { A[idx+1]+=(A[idx]>>8); if(idx+1>A[0]) A[0]=idx+1; A[idx]&=(base-1); } } } void memc(int A[],int B[]) { for(int idx=1;idx<=A[0];idx++) A[idx]=0; A[0]=0; for(int idx=0;idx<=B[0];idx++) A[idx]=B[idx]; } void prc_dp() { for(k=0;k<cifmax;k++) unu[k]=zr[k]=0; for(i=0;i<=n+1;i++) for(j=0;j<=m+1;j++) for(k=0;k<cifmax;k++) dp[i][j][k]=sum[i][j][k]=0; unu[0]=unu[1]=1; for(i=n;i>=1;i--) for(j=m;j>=0;j--) { add(dp[i][j],sum[i+1][j]); if(i==n) add(dp[i][j],unu); add(sum[i][j],sum[i][j+1]); add(sum[i][j],dp[i][j]); } } bool mmic(int X[],int Y[]) { if(X[0]<Y[0]) return 1; if(X[0]>Y[0]) return 0; for(int idx=X[0];idx>=1;idx--) { if(X[idx]<Y[idx]) return 1; if(X[idx]>Y[idx]) return 0; } return 0; } void get_kth() { memc(cost,zr);memc(aux,zr); for(poz=1;poz<=n;poz++) { p=v[poz-1]; memc(aux,cost); for(int ok=1;ok!=0;) { add(aux,dp[poz][p]); if(mmic(aux,A)) memc(cost,aux); else v[poz]=p,ok=0; p++; } send(v[poz]); } } void encode(int N, int M[]) { n=5*N; m=255; memc(A,zr); for(i=0;i<N;i++) { A[i+1]=M[i]; if(A[i+1]) A[0]=i+1; } add(A,unu); prc_dp(); get_kth(); }
#include "encoder.h" #include "encoderlib.h" #include <iostream> using namespace std; const int base=(1<<8); const int nm=325,mm=275,cifmax=600; static int dp[nm][mm][cifmax],sum[nm][mm][cifmax]; static int cost[cifmax],A[cifmax],aux[cifmax]; static int unu[cifmax],zr[cifmax]; static int v[nm]; static int i,j,poz,p,n,m,k; void add(int A[],int B[]) { A[0]=max(A[0],B[0]); for(int idx=1;idx<=A[0];idx++) { A[idx]+=B[idx]; if(A[idx]>=base) { A[idx+1]+=(A[idx]>>8); if(idx+1>A[0]) A[0]=idx+1; A[idx]&=(base-1); } } } void memc(int A[],int B[]) { for(int idx=1;idx<=A[0];idx++) A[idx]=0; A[0]=0; for(int idx=0;idx<=B[0];idx++) A[idx]=B[idx]; } void prc_dp() { for(k=0;k<cifmax;k++) unu[k]=zr[k]=0; for(i=0;i<=n+1;i++) for(j=0;j<=m+1;j++) for(k=0;k<cifmax;k++) dp[i][j][k]=sum[i][j][k]=0; unu[0]=unu[1]=1; for(i=n;i>=1;i--) for(j=m;j>=0;j--) { add(dp[i][j],sum[i+1][j]); if(i==n) add(dp[i][j],unu); add(sum[i][j],sum[i][j+1]); add(sum[i][j],dp[i][j]); } } bool mmic(int X[],int Y[]) { if(X[0]<Y[0]) return 1; if(X[0]>Y[0]) return 0; for(int idx=X[0];idx>=1;idx--) { if(X[idx]<Y[idx]) return 1; if(X[idx]>Y[idx]) return 0; } return 0; } void get_kth() { memc(cost,zr);memc(aux,zr); for(poz=1;poz<=n;poz++) { p=v[poz-1]; memc(aux,cost); for(int ok=1;ok!=0;) { add(aux,dp[poz][p]); if(mmic(aux,A)) memc(cost,aux); else v[poz]=p,ok=0; p++; } send(v[poz]); } } void encode(int N, int M[]) { n=5*N; m=255; memc(A,zr); for(i=0;i<N;i++) { A[i+1]=M[i]; if(A[i+1]) A[0]=i+1; } add(A,unu); prc_dp(); get_kth(); }

Compilation message (stderr)

/tmp/cchcL03N.o: In function `main':
grader_decoder.cpp:(.text.startup+0x1f6): undefined reference to `decode(int, int, int*)'
/tmp/ccIxUVVk.o: In function `get_kth()':
decoder.cpp:(.text+0x4d5): undefined reference to `send(int)'
collect2: error: ld returned 1 exit status