Pagini recente » Cod sursa (job #2145079) | Cod sursa (job #591738) | Cod sursa (job #3149058) | Cod sursa (job #2545840) | Cod sursa (job #981645)
Cod sursa(job #981645)
#include <fstream>
using namespace std;
int n,r,l;
long long pr1[25],pr2[350],pr3[400],v,p2;
const int r1=999999999,r2=1000000000;
int main ()
{
ifstream in ("patrate2.in");
in>>n;
in.close();
pr1[0]=1; pr1[1]=1; pr2[0]=1; pr2[1]=1;
for (int i=1;i<=n;++i)
{
for (int j=1;j<=pr1[0];++j)
{
pr1[j]=pr1[j]*i+r;
r=0;
if (pr1[j]>r1)
{
r=pr1[j]/r2;
pr1[j]=pr1[j]%r2;
}
}
l=pr1[0];
while (r>0) { ++l; pr1[l]=r; r=0; if (pr1[l]>r1) { r=pr1[l]/r2; pr1[l]=pr1[l]%r2; } }
if (l>pr1[0]) pr1[0]=l;
}
v=(n*n)/30;
p2=1<<30;
for (int i=1;i<=(v);++i)
{
for (int j=1;j<=pr2[0];++j)
{
pr2[j]=pr2[j]*p2+r;
r=0;
if (pr2[j]>r1)
{
r=pr2[j]/r2;
pr2[j]=pr2[j]%r2;
}
}
l=pr2[0];
while (r>0) { ++l; pr2[l]=r; r=0; if (pr2[l]>r1) { r=pr2[l]/r2; pr2[l]=pr2[l]%r2; } }
if (pr2[0]<l) pr2[0]=l;
}
v=(n*n)%30;
for (int i=1;i<=(v);++i)
{
for (int j=1;j<=pr2[0];++j)
{
pr2[j]=pr2[j]*2+r;
r=0;
if (pr2[j]>r1)
{
r=pr2[j]/r2;
pr2[j]=pr2[j]%r2;
}
}
l=pr2[0];
while (r>0) { ++l; pr2[l]=r; r=0; if (pr2[l]>r1) { r=pr2[l]/r2; pr2[l]=pr2[l]%r2; } }
if (pr2[0]<l) pr2[0]=l;
}
for (int i=1;i<=pr1[0];++i)
{
for (int j=1;j<=pr2[0];++j)
{
pr3[i+j-1]=pr3[i+j-1]+(pr1[i]*pr2[j])+r;
r=0;
if (pr3[i+j-1]>r1) { r=pr3[i+j-1]/r2; pr3[i+j-1]%=r2; }
}
l=i+pr2[0]-1;
while (r>0) { ++l; pr3[l]=pr3[l]+r; r=0; if (pr3[l]>r1) { r=pr3[l]/r2; pr3[l]%=r2; } }
if (pr3[0]<l) pr3[0]=l;
}
ofstream out ("patrate2.out");
out<<pr3[pr3[0]];
for (int i=pr3[0]-1;i>=1;--i)
{
if (pr3[i]>99999999) out<<pr3[i];
else if (pr3[i]>9999999) out<<"0"<<pr3[i];
else if (pr3[i]>999999) out<<"00"<<pr3[i];
else if (pr3[i]>99999) out<<"000"<<pr3[i];
else if (pr3[i]>9999) out<<"0000"<<pr3[i];
else if (pr3[i]>999) out<<"00000"<<pr3[i];
else if (pr3[i]>99) out<<"000000"<<pr3[i];
else if (pr3[i]>9) out<<"0000000"<<pr3[i];
else out<<"00000000"<<pr3[i];
}
out.close();
}