Cod sursa(job #648438)

Utilizator BlaugranasEnal Gemaledin Blaugranas Data 13 decembrie 2011 14:58:00
Problema Patrate2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include<cstdio>
#define N 10000
int x[N],y[N],z[N],i,n;

void P(int A[N],int B[N])
{int i,j,t,C[N]={0};
for(i=1;i<=A[0];i++)
      {for(t=0,j=1;j<=B[0]||t;j++,t/=10)
              C[i+j-1]=(t+=C[i+j-1]+A[i]*B[j])%10;
      if(i+j-2>C[0]) 
              C[0]=i+j-2;}
for(i=0;i<=C[0];i++)
      A[i]=C[i];}

void p(int A[N],int B)
{int i,t=0;
for(i=1;i<=A[0]||t;i++,t/=10)
      A[i]=(t+=A[i]*B)%10;
A[0]=i-1;}

int main()
{FILE *f=fopen("patrate2.in","r"),*g=fopen("patrate2.out","w");
fscanf(f,"%d",&n);
x[1]=y[1]=z[1]=x[0]=y[0]=z[0]=1;
for(i=2;i<=n;i++)
      p(x,i);
for(i=1;i<=n;i++)
      p(y,2);
while(n--)
      P(z,y);
P(x,z);
for(i=x[0];i;i--)
      fprintf(g,"%d",x[i]);
return 0;}