Cod sursa(job #2785789)

Utilizator AlexNicuNicu Alexandru AlexNicu Data 19 octombrie 2021 15:10:20
Problema Patrate2 Scor 30
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <fstream>
#include <vector>

using namespace std;

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

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

const int base = 1e6;
const int POW = 27;
vector<int> ANS;

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

}

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