Cod sursa(job #2787474)

Utilizator 2016Teo@Balan 2016 Data 23 octombrie 2021 14:01:58
Problema Patrate2 Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <bits/stdc++.h>
using namespace std;

#define x1 "patrate2.in"
#define x2 "patrate2.out"
ifstream in(x1);
ofstream out(x2);

#define MAXC 5000

void prd( int ans[], int &nans, int b ) {
    int i, t = 0;
    for( i = 0; i < nans; i++ ) {
        t += b * ans[i];
        ans[i] = t % 10;
        t /= 10;
    }

    while( t > 0 ) {
        ans[nans++] = t % 10;
        t /= 10;
    }
}

void fastpow2( int ans[], int &nans, int p ) {
    for(int i = 0; i < p / 27; i++)
        prd(ans, nans, (1 << 27));
    prd(ans, nans, (1 << (p % 27)));
}

int main() {
    int n, i, nans;
    int ans[MAXC];
    in >> n;

    ans[0] = 1;
    nans = 1;

    for( i = 2; i <= n; i++ )
        prd(ans, nans, i);

    fastpow2(ans, nans, n * n);

    for( i = nans - 1; i >= 0; i-- )
        out << ans[i];

    return 0;
}