Cod sursa(job #766295)

Utilizator alexalbu95Albu Alexandru alexalbu95 Data 10 iulie 2012 21:31:04
Problema Patrate2 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <fstream>
#include <cstdio>

using namespace std;

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

int n, a[100000], i;

void nr(int x, int a[])
{
    int i, t=0;

    for(i=1; i<=a[0]; ++i, t/=10)
        a[i] = (t+=a[i]*x) % 10;

    while(t)
    {
        a[++a[0]]=t%10;
        t/=10;
    }
}

int main()
{
    f>>n;
    a[0]=a[1]=1;
    for(i=2; i<=n; ++i) nr(i, a);

    n*=n;

    if(n%2==0)
    {
        n/=2;
        for(i=1; i<=n; ++i) nr(4, a);
    }
    else
    {
        nr(2, a);
        n-=1;
        n/=2;
        for(i=1; i<=n; ++i) nr(4, a);
    }

    freopen("patrate2.in", "w", stdout);

    for(i=a[0]; i>=1; --i) printf("%d", a[i]); printf("\n");
}