Cod sursa(job #1751471)

Utilizator georgerapeanuRapeanu George georgerapeanu Data 1 septembrie 2016 14:43:39
Problema Patrate2 Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <cstdio>
#define baza 1000000000
using namespace std;
FILE *f=fopen("patrate2.in","r");
FILE *g=fopen("patrate2.out","w");
long long A[4000];
long long N,i;
void shr(long long V[])
{
    for(long long i=V[0]+1;i>0;i--)
        V[i]=V[i-1];
    V[1]=0;
    V[0]++;
}
void inm(long long V[],long long nr)
{
    for(long long i=1;i<=V[0];i++)
        V[i]*=nr;
    for(long long i=V[0];i>1;i--)
    {
        V[i-1]+=V[i]/baza;
        V[i]%=baza;
    }
    while(V[1]>=baza)
    {
        shr(V);
        V[1]=V[2]/baza;
        V[2]%=baza;
    }
}
int main()
{
    fscanf(f,"%lld",&N);
    A[0]=A[1]=1;
    for(i=2;i<=N;i++)
    {
        inm(A,i);
    }
    N=N*N;
    for(i=1;i<=N;i++)
        inm(A,2);
    for(i=1;i<=A[0];i++)
        fprintf(g,"%lld",A[i]);
    fclose(f);
    fclose(g);
    return 0;
}