Cod sursa(job #1813779)

Utilizator sergiudnyTritean Sergiu sergiudny Data 23 noiembrie 2016 11:48:44
Problema Patrate2 Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.07 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("patrate2.in");
ofstream fout("patrate2.out");
typedef int NrMare[1000];

void afis(NrMare v)
{
    int i;
    for(i=v[0];i>=1;--i)
        if(i!=v[0])
        {
            if(v[i]>999)
                fout<<v[i];
            else if(v[i]>99)
                fout<<0<<v[i];
            else if(v[i]>9)
                fout<<0<<0<<v[i];
            else
                fout<<0<<0<<0<<v[i];
        }
        else
            fout<<v[i];
}

int fact(int st, int dr)
{
    int m=(st+dr)/2;
    if(st<dr)
        return fact(st,m)*fact(m+1,dr);
    else
        return st;
}

void produs(NrMare v, unsigned long long n)
{
    int i,t=0;
    for(i=1;i<=v[0];++i,t/=10000)
    {
        t+=v[i]*n;
        v[i]=t%10000;
    }
    for(;t;t/=10000)
        v[++v[0]]=t%10000;
}

NrMare p;

int main()
{
    int n,i;
    fin>>n;
    p[0]=p[1]=1;
    for(i=1;i<=n*n;++i)
        produs(p,2);
    unsigned long long f=fact(1,n);
    produs(p,f);
    afis(p);
    return 0;
}