Cod sursa(job #323531)

Utilizator freak93Adrian Budau freak93 Data 12 iunie 2009 15:47:43
Problema Patrate2 Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include<cstdio>

using namespace std;

long long a[100000],i,n;

void mul(long long A[], long long B)
{
      long long i, t = 0;
      for (i = 1; i <= A[0] || t; i++, t /= 10000)
              A[i] = (t += A[i] * B) % 10000;
      A[0] = i - 1;
}

int main()
{
    freopen("patrate2.in","r",stdin);
    freopen("patrate2.out","w",stdout);

    scanf("%lld",&n);

    a[0]=a[1]=1;

    for(i=2;i<=n;++i)
        mul(a,i);

    n*=n;

    for(i=1;i<=n;++i)
        mul(a,2);

    printf("%lld",a[a[0]]);
    for(i=a[0]-1;i;--i)
        printf("%04lld",a[i]);

    fclose(stdin);
    fclose(stdout);

    return 0;
}