Cod sursa(job #2453822)

Utilizator bluestorm57Vasile T bluestorm57 Data 6 septembrie 2019 10:33:06
Problema Patrate2 Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.59 kb
#include <bits/stdc++.h>

using namespace std;

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

const int NMAX = 10000005;
unsigned long long n,ans[NMAX],sz = 1;

int main(){
    unsigned long long i,nconst,integer,j,newsz,part,units;
    f >> n;
    ans[1] = 1;
    nconst = n - 1;

    if(n == 1){
        g << 2;
        return 0;
    }

    for(i = 1 ; i <= n ; i++){
        newsz = sz;
        for(j = 1 ; j <= sz ; j++){
            ans[j] *= (n - i + 1);
            if(ans[j] > 9){
                integer = ans[j] / 10;
                ans[j] %= 10;
                ans[j + 1] += integer;
                if(integer)
                    newsz = max(newsz, j + 1);
            }
        }
        sz = newsz;
    }


    for(i = 1 ; i <= n ; i++){
        newsz = sz;
        for(j = 1 ; j <= sz ; j++){
            ans[j] *= 4;
            while(ans[j] > 9){
                integer = ans[j] / 10;
                ans[j] %= 10;
                ans[j + 1] += integer;
                if(integer)
                    newsz = max(newsz, j + 1);
            }
        }
        sz = newsz;
    }
    for(i = 1 ; i <= n ; i++){
        newsz = sz;
        for(j = 1 ; j <= sz ; j++){
            ans[j] *= nconst;
            while(ans[j] > 9){
                integer = ans[j] / 10;
                ans[j] %= 10;
                ans[j + 1] += integer;
                if(integer)
                    newsz = max(newsz, j + 1);
            }
        }
        sz = newsz;
    }

    for(i = sz; i ; i--)
        g << ans[i] ;

    return 0;
}