Pagini recente » Cod sursa (job #927445) | Cod sursa (job #1665969) | Cod sursa (job #3281585) | Cod sursa (job #532991) | Cod sursa (job #542384)
Cod sursa(job #542384)
#include<fstream.h>
#include<math.h>
int n,i,j,m,tt,nr;
int a[400],b[400],s[202][202][400];
void add(int a[], int b[])
{
int i,t=0;
for(i=1; i<=a[0] || i<=b[0] || t; i++, t=t/10)
a[i]=(t+=a[i]+b[i])%10;
a[0]=i-1;
}
void mul(int a[],int x)
{
int i;
unsigned long t=0;
for (i=1;i<=a[0];i++)
{
a[i]=a[i]*x+t;
t=a[i]/10;
a[i]=a[i]%10;
}
while (t)
{
a[++a[0]]=t%10;
t/=10;
}
}
int main()
{
ifstream f("sortari2.in");
ofstream g("sortari2.out");
f>>n;
if(n==2)
g<<0;
else
if(n==3)
g<<1;
else
{
s[0][0][0]=1;
s[0][0][1]=1;
for(i=0;i<=n;i++)
for(j=0;j<=i;j++)
s[i][j][0]=1;
for(i=1;i<=n;i++)
for(j=1;j<=i;j++)
{
memcpy(a,s[i-1][j-1],sizeof(s[i-1][j-1]));
a[0]=s[i-1][j-1][0];
memcpy(b,s[i-1][j],sizeof(s[i-1][j]));
b[0]=s[i-1][j][0];
tt=i-1;
nr=0;
mul(b,tt);
add(a,b);
memcpy(s[i][j],a,sizeof(a));
}
tt=sqrt(n);
for(i=s[n][tt][0];i>=1;i--)
g<<s[n][tt][i];
}
}