Cod sursa(job #1044826)

Utilizator Corina1997Todoran Ana-Corina Corina1997 Data 30 noiembrie 2013 14:58:59
Problema Patrate2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <fstream>
using namespace std;

ifstream is("patrate2.in");
ofstream os("patrate2.out");

#define DIM 100000000
int n;
long long int a[DIM];

void Solve();
void Mult ( long long int a[], int x );
void Write();

int main()
{
    is >> n;

    Solve();
    Write();

    is.close();
    os.close();
    return 0;
}

void Solve()
{
    a[0] = a[1] = 1;
    for ( int i = 2; i <= n; i++ ) // n!
        Mult( a, i );
    int p = n * n;
    for ( int i = 1; i <= p / 20; i++ ) // a reduce din calcule
        Mult( a, 1024 * 1024 );
    for ( int i = 1; i <= p % 20; i++ )
        Mult( a, 2 );
}

void Write()
{
    for ( int i = a[0]; i >= 1; i-- )
        os << a[i];
}

void Mult( long long int a[], int x )
{
    int t = 0, i;
    for ( i = 1; i <= a[0] || t; i++ )
    {
        t += a[i] * x;
        a[i] = t % 10;
        t /= 10;
    }
    a[0] = i - 1;
}