Cod sursa(job #1019333)

Utilizator Athena99Anghel Anca Athena99 Data 30 octombrie 2013 22:29:18
Problema Patrate2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.09 kb
#include <fstream>
#include <vector>

using namespace std;

ifstream fin("patrate2.in");
ofstream fout("patrate2.out");

const int base= 10000;

void write( vector <int> x ) {
    if ( x[(int)x.size()-1]>0 ) {
        fout<<x[(int)x.size()-1];
    }
    for ( int i= (int)x.size()-2; i>=0; --i ) {
        if ( x[i]<1000 && x[i]>99 ) {
            fout<<"0";
        } else if ( x[i]<100 && x[i]>9 ) {
            fout<<"00";
        } else if ( x[i]<10) {
            fout<<"000";
        }
        fout<<x[i];
    }
    fout<<"\n";
}

void hn_mult( vector <int> &x, int y ) {
    int t= 0;
    for ( int i= 0; i<(int)x.size() || t!=0; ++i ) {
        if ( i>(int)x.size()-1 ) {
            x.push_back(0);
        }
        x[i]= x[i]*y+t;
        t= x[i]/base;
        x[i]%= base;
    }
}

int main(  ) {
    int n;
    fin>>n;
    vector <int> x;
    x.push_back(1);
    for ( int i= 2; i<=n; ++i ) {
        hn_mult(x, i);
        //fout<<i<<" ";
        //write(x);
    }
    for ( int i= 0; i<n*n; ++i ) {
        hn_mult(x, 2);
        //fout<<i+1<<" ";
        //write(x);
    }
    write(x);
    return 0;
}