Cod sursa(job #338655)

Utilizator rumburakrumburak rumburak Data 6 august 2009 13:40:45
Problema Patrate2 Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include<cstdio>

const int b = 10000000;
const int N = (1<<10);

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 scrie()
{
	for(int i=v[0];i;--i)
		printf("%d",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);
	pow2(n*n);
	scrie();
	//printf("%lld\n",f(n)*((long long)1<<(n*n)));
	return 0;
}