Cod sursa(job #2941803)

Utilizator 0021592Grecu rares 0021592 Data 18 noiembrie 2022 12:08:39
Problema Patrate2 Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.28 kb
#include <fstream>

using namespace std;
ifstream fin("patrate2.in");
ofstream fout("patrate2.out");
int n, v[10000005], v1[10000005];
bool xe = 0;
void inm(int e, int x[], int& lx, int& lx1, int x1[])
{
    int t = 0;
    if (!e)
    {
        lx1 = 0;
        x1[0] = 0;
        return;
    }
    lx1 = lx;
    for (int i = 0; i < lx; i++)
    {
        x1[i] = x[i] * e + t;
        t = x1[i] / 10;
        x1[i] %= 10;
    }
    while (t)
    {
        x1[lx1] = x[lx1] * e + t;
        t = x1[lx1] / 10;
        x1[lx1] %= 10;
        lx1++;
    }
}
int main()
{
    fin >> n;
    int n1 = 1, n2=1;
    v[0] = 2;

    for (int i = 2; i <= n; i++)
    {
        if (i%2 == 0)
        {
            inm(i*2,v,n1, n2, v1);
            xe = 1;

        }
        else
        {
            inm(i*2, v1, n2, n1, v);
            xe = 0;
        }
    }
    if (n == 1)
    {
        fout << 2;
        return 0;
    }
    if (xe)
    {
        inm(n*(n-1)*2, v1, n2, n1, v);
        for (int i = n1 - 1; i >= 0; i--)
        {
            fout << v[i];
        }
    }
    else
    {
        inm(n*(n-1)*2, v, n1, n2, v1);
        for (int i = n2 - 1; i >= 0; i--)
        {
            fout << v1[i];
        }
    }

    return 0;
}