Cod sursa(job #866142)

Utilizator okros_alexandruOkros Alexandru okros_alexandru Data 27 ianuarie 2013 16:39:08
Problema Patrate2 Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <fstream>
#include <iomanip>
#define nmax 1000
#define baza 10000
using namespace std;

int N,A[nmax];

void Produs(int Val) {

    int i,Rest=0;

    for(i=1;i<=A[0] || Rest;A[i]=A[i]*Val+Rest%baza,Rest=Rest/baza+A[i]/baza,A[i++]%=baza);

    A[0]=i-1;

}
void solve() {

    int i,M;

    for(i=2,A[0]=A[1]=1;i<=N;i++)
        Produs(i);

    for(i=1,M=N*N/16;i<=M;i++)
        Produs(1<<16);

    for(i=1,M=N*N&15;i<=M;i++)
        Produs(2);

}
void read() {

    ifstream in("patrate2.in");
    in>>N;
    in.close();

}
void write() {

    ofstream out("patrate2.out");
    for(int i=A[0];i>=1;out<<setfill('0')<<A[i--]);
    out<<'\n';
    out.close();

}
int main() {

    read();
    solve();
    write();

    return 0;

}