Cod sursa(job #484653)

Utilizator loginLogin Iustin Anca login Data 15 septembrie 2010 00:35:30
Problema Patrate2 Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
# include <fstream>
# include <iostream>
# define B 1000000000
using namespace std;
int n, v[100000], a[100000], s[1000000];

int main ()
{
	ifstream fin ("patrate2.in");
	ofstream fout ("patrate2.out");
	
	fin>>n;
	v[0]=v[1]=1;
	long long int q, t;
	int i;
	for(int j=1;j<=n*n;++j)//2^n*n
	{
		t=0;
		for(i=1;i<=v[0] || t;++i)
		{
			q=v[i]*2+t;
			v[i]=q%B;
			t=q/B;
		}
		if (i-1>v[0])v[0]=i-1;
	}
	a[0]=a[1]=1;
	for(int k=2;k<=n;++k)//n!
	{
		t=0;
		for (i=1;i<=a[0] || t;++i)
		{
			q=a[i]*k+t;
			a[i]=q%B;
			t=q/B;
		}
		if (i-1>a[0])a[0]=i-1;
	}
	int j;
	for(int i=1;i<=v[0];++i)
	{
		for(t=0, j=1;j<=a[0] || t;++j, t/=B)
			s[i+j-1]=(t+=s[i+j-1]+v[i]*a[j])%B;
		if (i+j-2>s[0])s[0]=i+j-2;
	}
	for(int i=s[0];i;--i)
		fout<<s[i];
	return 0;
}