Cod sursa(job #2492096)

Utilizator vlad414141414141Vlad Ionescu vlad414141414141 Data 13 noiembrie 2019 22:11:37
Problema Patrate2 Scor 30
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.29 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream fin ("patrate2.in");
ofstream fout ("patrate2.out");

struct Huge
{
    int data[1000];
};

Huge create_huge(int x)
{
    Huge nr;
    nr.data[0] = 0;
    do {
        nr.data[++nr.data[0]] = x%10;
        x /= 10;
    } while (x > 0);
    return nr;
}

void mult_with_scalar(Huge &x, int y)
{
    int t = 0;
    for (int i = 1; i <= x.data[0]; i++)
    {
        x.data[i] = x.data[i] * y + t;
        t = x.data[i] / 10;
        x.data[i] %= 10;
    }
    while (t) {
        x.data[++x.data[0]] = t % 10;
        t /= 10;
    }
}

int n;

Huge nr;

int main()
{
    nr.data[0]=1;
    nr.data[1]=1;
    fin >> n;
    for (int i=1;i<=n;++i)
    {
        int x=1;
        while (1)
        {
            if (2147483647/x>=i&&i<=n)
            x*=i;
            else
                break;
            ++i;
        }
        mult_with_scalar(nr,x);
    }
    for (int i=0;i<n*n;++i)
    {
        int x=1;
        while (1)
        {
            if (2147483647/x>=2&&i<n*n)
            x*=2;
            else
                break;
            ++i;
        }
        mult_with_scalar(nr,x);
    }
    for (int i=nr.data[0];i>=1;--i)
        fout << nr.data[i];
    return 0;
}