Cod sursa(job #2785796)

Utilizator AlexNicuNicu Alexandru AlexNicu Data 19 octombrie 2021 15:53:01
Problema Patrate2 Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <fstream>
#include <vector>

using namespace std;

ifstream cin ( "patrate2.in" );
ofstream cout ( "patrate2.out" );

/// 2 ^ ( N ^ 2 ) * N!

#define int long long

const int base = 10;
const int POW = 55;
int ANS[3180], nrcif;

void mult( int nr ) {
    int t = 0, i;
    for ( i = 0; i < nrcif || t > 0; i++ ) {
        t = t + ANS[i] * nr;
        ANS[i] = t % base;
        t /= base;
    }
    if ( i > nrcif )
        nrcif = i;
}

signed main() {
    int n, i;
    cin >> n;
    ANS[0] = 1;
    nrcif = 1;
    for ( i = 1; i <= ( n * n ) / POW; i++ )
        mult(((long long)1 << POW));
    for ( i = 1; i <= ( n * n ) % POW; i++ )
        mult(2);
    for ( i = 2; i <= n; i++ )
        mult(i);
    for ( i = nrcif - 1; i >= 0; i-- ) {
        cout << ANS[i];
    }
    return 0;
}