Cod sursa(job #1669998)

Utilizator murgoci1Gheorghe Murgoci murgoci1 Data 31 martie 2016 12:47:45
Problema Patrate2 Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.43 kb
#include <fstream>

using namespace std;
ifstream f("patrate2.in");
ofstream g("patrate2.out");
int i=1,n,t,p=10,tr,mx=1,j;
unsigned long long v[50000];
int main()
{
    v[1]=1;
    f>>n;
    t=n*n;
    for(i=1;i<=t;i++)
        {
            tr=0;
            for(j=1;j<=mx;j++)
               {v[j]=v[j]*2+tr;
                tr=v[j]/p;
                v[j]=v[j]%p;
               }

            while (tr)
            {
                v[j++]=tr;
                tr=v[j]/p;
                v[j]%=p;
            }
            j--;
            if (j>mx) mx=j;

        }

        for(i=2;i<=n;i++)
        {
            tr=0;
            for(j=1;j<=mx;j++)
               {v[j]=v[j]*i+tr;
                tr=v[j]/p;
                v[j]=v[j]%p;
               }

            while (tr)
            {
                v[j++]=tr;
                tr=v[j]/p;
                v[j]%=p;
            }
            j--;
            if (j>mx) mx=j;

        }
    for(i=mx;i>=1;i--)
        g<<v[i];

    return 0;
}
/*
#include <fstream>

using namespace std;
ifstream f("patrate2.in");
ofstream g("patrate2.out");
int factorial(int n) {
    int temp;

    if(n <= 1) return 1;

    temp = n * factorial(n-1);
    return temp;
}
int i=1;
int main()
{   long long nf;
    int n,t;
    f>>n;
    t=n*n;
    if(n==1) nf=2;
        else nf=factorial(n)*(1LL<<t);
    g<<nf;
    return 0;
}
*/