Cod sursa(job #1557043)
Utilizator | Data | 26 decembrie 2015 17:13:12 | |
---|---|---|---|
Problema | Patrate2 | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 1.4 kb |
#include <cstdio>
using namespace std;
int nr[465],n,i,j,b,l;
int main()
{
freopen("patrate2.in","r",stdin);
freopen("patrate2.out","w",stdout);
scanf("%d",&n);
b = 10000000;
l = 455;
nr[l] = 1;
for (i =1 ; i <= n*n; ++i)
{
for (j=l; j>=1; --j)
nr[j]*=2;
for (j=l; j>=1; --j)
while (nr[j]-b>0)
{
nr[j-1]++;
nr[j]-=b;
}
}
for (i=1; i<=n; ++i)
{
for (j=l; j>=1; --j)
nr[j]*=i;
for (j=l; j>=1; --j)
{
nr[j-1]+=nr[j]/b;
nr[j]%=b;
}
}
for (i=1; i<=l; ++i)
if (nr[i]!=0)
{
j=i;
break;
}
printf("%d",nr[j]);
for (i=j+1; i<=l; ++i)
{
long cop=nr[i];
if (cop!=0)
while (cop<b/10)
{
printf("0");
cop*=10;
}
else printf("000000");
printf("%d",nr[i]);
}
printf("\n");
return 0;
}