Cod sursa(job #1015521)

Utilizator florin.elfusFlorin Elfus florin.elfus Data 24 octombrie 2013 19:54:38
Problema Patrate2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include<fstream>
#include<algorithm>
#include<string.h>

using namespace std;

void inm(int* a, int b)
{
    int aux[5001];
    memcpy(aux, a, sizeof(aux));
    memset(a, 0, sizeof(aux));

    for (int i = 1; i <= aux[0]; ++i)
    {
        a[i] += b * aux[i];
        a[0] = i;
        if (a[i] >= 10)
        {
            a[i + 1] += a[i] / 10;
            a[i] %= 10;
            a[0] = i + 1;
        }
    }
    while (a[a[0]] >= 10)
    {
        a[++a[0]] += a[a[0] - 1] / 10;
        a[a[0] - 1] %= 10;
    }
}

int n, res[5001], p2[5001];
int main()
{
    ifstream fin("patrate2.in");
    ofstream fout("patrate2.out");
    fin >> n;

    res[0] = 1, res[1] = 1;
    for (int i = 2; i <= n; ++i)         inm(res, i);
    for (int i = 1; i <= n * n / 10; ++i) inm(res, 1024);
    int j = (n * n / 10) * 10;
    while (j < n * n) inm(res, 2), ++j;

    for (int i = res[0]; i >= 1; --i)
        fout << res[i];
}