Cod sursa(job #866135)

Utilizator okros_alexandruOkros Alexandru okros_alexandru Data 27 ianuarie 2013 16:34:59
Problema Patrate2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <fstream>
#define nmax 10100
using namespace std;

int N,A[nmax];

void Produs(int Val) {

    int i,Rest=0;

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

    A[0]=i-1;

}
void solve() {

    int i,M;

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

    M=N*N/16;

    for(i=1;i<=M;i++)
        Produs(1<<16);

    M=N*N&15;

    for(i=1;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<<A[i--]);
    out<<'\n';
    out.close();

}
int main() {

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

    return 0;

}