Cod sursa(job #1486467)
| Utilizator | Data | 14 septembrie 2015 21:44:06 | |
|---|---|---|---|
| Problema | Patrate2 | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 1.12 kb |
#include <cstdio>
#define LIM 15023
int a[LIM];
int b[LIM];
int p;
int n;
int main()
{
freopen ("patrate2.in","r",stdin);
freopen ("patrate2.out","w",stdout);
scanf("%d",&n);
int m=n*n;
a[1]=1;
p=1;
for(int x=1;x<=m;x++)
{
for(int i=1;i<=p;i++)
{
a[i]*=2;
a[i]+=a[i-1]/10;
a[i-1]%=10;
}
a[p+1]=a[p]/10;
a[p]%=10;
while(a[p+1]!=0)
{
p++;
a[p+1]=a[p]/10;
a[p]%=10;
}
}
for(int i=p;i>=1;i--) b[i]=a[i];
for(int v=2;v<=n;v++)
{
for(int x=2;x<=v;x++)
{
for(int i=1;i<=p;i++)
{
b[i]+=a[i];
b[i+1]+=b[i]/10;
b[i]%=10;
}
while(b[p+1]!=0)
{
p++;
}
}
for(int i=1;i<=p;i++) a[i]=b[i];
}
for(int i=p;i>=1;i--) printf("%d",b[i]);
}
