Cod sursa(job #1484101)

Utilizator BlaugranasEnal Gemaledin Blaugranas Data 10 septembrie 2015 14:44:01
Problema Patrate2 Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 0.68 kb
#include<stdio.h>
int x[10000],y[10000],z[10000],i,n;
void P(int A[],int B[]) {
	int i,j,t,C[10000]={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 R(int A[],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() {
	freopen("patrate2.in","r",stdin),freopen("patrate2.out","w",stdout),scanf("%d",&n),x[1]=y[1]=z[1]=x[0]=y[0]=z[0]=1,R(y,2);
	for(i=2;i<=n;i++)
      	R(x,i),R(y,2);
	while(n--)
      	P(z,y);
	for(P(x,z),i=x[0];i;i--)
      	printf("%d",x[i]);
}