Cod sursa(job #318018)

Utilizator taloibogdanTaloi Bogdan Cristian taloibogdan Data 26 mai 2009 16:18:17
Problema Nunta Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include<stdio.h>
#include<string.h>
long n,a[3000],b[3000],c[3000],i;
void add()
{long i,t=0,cc;
 memcpy(c,a,sizeof(a));
 for(i=1;i<=(c[0]+1)/2;++i){cc=c[i];c[i]=c[c[0]-i+1];c[c[0]-i+1]=cc;}
 for(i=1;i<=(b[0]+1)/2;++i){cc=b[i];b[i]=b[b[0]-i+1];b[b[0]-i+1]=cc;}
 for(i=1;i<=c[0]||i<=b[0]||t;++i,t/=10)
    c[i]=(t+=(c[i]+b[i]))%10;
 c[0]=i-1;
 for(i=1;i<=(c[0]+1)/2;++i){cc=c[i];c[i]=c[c[0]-i+1];c[c[0]-i+1]=cc;}
 for(i=1;i<=(b[0]+1)/2;++i){cc=b[i];b[i]=b[b[0]-i+1];b[b[0]-i+1]=cc;}
}
int main()
{
 freopen("nunta.in","r",stdin);
 freopen("nunta.out","w",stdout);
 scanf("%ld",&n);
 if(n==0){printf("0\n");return 0;}
 if(n==1){printf("1\n");return 0;}
 if(n==2){printf("2\n");return 0;}
 a[1]=1;
 a[0]=1;
 b[1]=2;
 b[0]=1;
 for(i=3;i<=n;++i)
    {add();
     memcpy(a,b,sizeof(b));
     memcpy(b,c,sizeof(c));}
 for(i=1;i<=c[0];++i)
    printf("%ld",c[i]);
 printf("\n");
 return 0;
}