Cod sursa(job #344117)

Utilizator Alexa_ioana_14Antoche Ioana Alexandra Alexa_ioana_14 Data 28 august 2009 15:05:53
Problema Patrate2 Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include<cstdio>
#define N 10001
short int f[N],c[N],n,cn,d[N];
void mul(short int a[],short int x)
{
	int t=0,i;
	for (i=1; i<=a[0]||t; ++i,t/=10)
		a[i]=(t+=a[i]*x)%10;
	a[0]=i-1;
}
void mul1(short int a[],short int b[])
{
	int t=0,i,j;
	for (i=1; i<=a[0]; ++i)
	{
		for (j=1; j<=b[0]||t; ++j,t/=10)
			d[i+j-1]=(t+=d[i+j-1]+a[i]*b[j])%10;
		if (i+j-2>d[0])
			d[0]=i+j-2;
	}
}
void citire()
{
	freopen("patrate2.in","r",stdin);
	freopen("patrate2.out","w",stdout);
	scanf("%hd",&n);
	f[0]=c[0]=1;
	f[1]=c[1]=1;
	for (int i=2; i<=n; ++i)
	{
		mul(f,i);
		mul(c,2);
	}
	cn=n*n;
	for(int i=n; i<=cn; ++i)
		mul(c,2);
	mul1(f,c);
}
void afis()
{
	while(d[0])
	{
		printf("%hd",d[d[0]]);
		--d[0];
	}
}
int main()
{
	citire();
	afis();
	return 0;
}