Cod sursa(job #1016258)

Utilizator AlexandruValeanuAlexandru Valeanu AlexandruValeanu Data 25 octombrie 2013 22:46:49
Problema Patrate2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.99 kb
#include <iostream>
#include <fstream>

using namespace std;

int A[3600], N;

#define baza 10000
#define nr 4

void mult( int x )
{
    int T = 0;

    for ( int i = 1; i <= A[0]; ++i )
    {
        A[i] = ( A[i] * x + T);
        T = A[i] / baza;
        A[i] %= baza;
    }

    while ( T )
    {
        A[ ++A[0] ] = T % baza;
        T /= baza;
    }
}

int numara( int a ) {

    int s = 0;

    while ( a )
        a /= 10,
        s++;

    return ( nr - s );
}


int main()
{
    ifstream f("patrate2.in");
    ofstream g("patrate2.out");

    f >> N;

    A[0] = A[1] = 1;

    for ( int i = N * N; i >= 1; i-- ) mult( 2 );
    for ( int i = N; i >= 2; i-- )     mult( i );

    g << A[ A[0] ];

    for ( int i = A[0] - 1; i; i-- )
    {
        for ( int j = 1, stop = numara( A[i] ); j <= stop; ++j )
                g << "0";

        if ( A[i] )
                g << A[i];
    }

    g << "\n";

    f.close();

    return 0;
}