Cod sursa(job #766298)

Utilizator alexalbu95Albu Alexandru alexalbu95 Data 10 iulie 2012 22:01:49
Problema Patrate2 Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <fstream>
#include <cstdio>
using namespace std;
ifstream f("patrate2.in");

int n, a[100000], i;

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

    for(int 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()
{
    freopen("patrate2.out", "w", stdout);

    f>>n;

    if(n==1) { printf("1\n"); return 0; }

    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(32, a);
        n=(n-5)/2;
        for(i=1; i<=n; ++i) nr(4, a);
    }

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