Cod sursa(job #493034)

Utilizator indestructiblecont de teste indestructible Data 16 octombrie 2010 20:08:56
Problema Patrate2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <stdio.h>
#define LMAX 20005
#define baza 10000
void mul(int A[], int B)
{
	int i, t = 0;
	for (i = 1; i <= A[0] || t; i++, t /= baza)
		A[i] = (t += A[i] * B) % baza;
	A[0] = i - 1;
}
int n,A[LMAX];
inline int ncif(int x)
{
	if (x==0)
		return 1;
	int t=0;
	while (x)
		x/=10,t++;
	return t;
}
int main()
{
	freopen("patrate2.in","r",stdin);
	freopen("patrate2.out","w",stdout);
	scanf("%d",&n);
	A[0]=1; A[1]=1;
	int i,j,t;
	for (i=1; i<=n*n; i++)
		mul(A,2);
	for (i=2; i<=n; i++)
		mul(A,i);
	for (i=A[0]; i>=1; i--)
	{
		t=ncif(A[i]);
		if (i!=A[0])
			for (j=1; j<=4-t; j++)
				printf("0");
		printf("%d",A[i]);
	}
	printf("\n");
	return 0;
}