Cod sursa(job #1510473)

Utilizator george.stefanGeorge Stefan george.stefan Data 25 octombrie 2015 01:22:34
Problema Patrate2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.1 kb
#include <iostream>
#include <stdio.h>
#include <stdlib.h>

#define C 3170

using namespace std;

int rez[C];

void mul(int A[], int B)
{
      int i, t = 0;
      for (i = 1; i <= A[0] || t; i++, t /= 10)
              A[i] = (t += A[i] * B) % 10;
      A[0] = i - 1;
}

int main()
{
    freopen("patrate2.in","r",stdin);
    freopen("patrate2.out","w",stdout);

    ios_base::sync_with_stdio(false);
    cin.tie(0);

    int n;

    //rez = (int*)calloc(C,sizeof(int));

    for(int i = 0 ; i < C; i++)
    {
        rez[i] = 0;
    }

    cin >> n;

    if(n == 1)
    {
        cout << 2;
    }
    else
    {
        rez[0] = C;
        rez[1] = 4;

        for(int i = 0; i < n*n - 1; i++)
        {
            mul(rez,2);
        }

        if(n > 2)
            for(int i = 3; i <= n; i++)
            {
                mul(rez,i);
            }

        int ii = C - 1;

        while(rez[ii] == 0)
        {
            ii--;
        }

        for(int i = ii; i >= 1; i--)
        {
            cout << rez[i];
        }
    }


    return 0;
}