Cod sursa(job #338659)

Utilizator rumburakrumburak rumburak Data 6 august 2009 13:54:24
Problema Patrate2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include<cstdio>

const int b = 1000000;
const int N = (1<<20);

int n,v[N];

void produs(int *v,int x)
{
	int t=0,aux,i;
	for(i=1;i<=v[0] || t;++i)
	{
		aux=v[i]*x+t;
		t=aux/b;
		v[i]=aux%b;
	}
	v[0]=i-1;
}

void fact(int n)
{
	v[0]=v[1]=1;
	for(int i=2;i<=n;++i)
		produs(v,i);
}

void pow2(int n)
{
	while(n--)
		produs(v,2);
}

void tipar(int x)
{
	char s[]="000000",*p;
	p=s+5;
	do{
		*p='0'+x%10;
		x/=10;
		--p;
	}while(x);
	printf("%s",s);
}

void scrie()
{
	printf("%d",v[v[0]]);
	for(int i=v[0]-1;i;--i)
		tipar(v[i]);
	printf("\n");
}

long long f(int n)
{
	long long p=1;
	for(int i=2;i<=n;++i)
		p*=i;
	return p;
}

int main()
{
	freopen("patrate2.in","r",stdin);
	freopen("patrate2.out","w",stdout);
	scanf("%d",&n);
	fact(n);
	//printf("nrc=%d\n",v[0]);
	pow2(n*n);
	scrie();
	//printf("%lld\n",f(n)*((long long)1<<(n*n)));
	return 0;
}