Cod sursa(job #2911804)

Utilizator _andrei4567Stan Andrei _andrei4567 Data 2 iulie 2022 12:13:06
Problema Dirichlet Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.75 kb
///Catalan de n
#include <fstream>
#define int long long

using namespace std;

ifstream cin ("dirichlet.in");
ofstream cout ("dirichlet.out");

const int MOD = 9999991;

int n;

int llpow (int a, int b)
{
    int res = 1;
    a = a % MOD;
    while (b)
    {
        if (b & 1)
            res = res * a % MOD;
        a = a * a % MOD;
        b >>= 1;
    }
    return res;
}

int invers (int x)
{
    return llpow (x, MOD - 2);
}

int prod (int a, int b)
{
    int p = 1;
    for (int i = a; i <= b; ++i)
        p = p * i % MOD;
    return p;
}

int comb (int n)
{
    return (prod (n + 2, (n << 1)) * invers (prod(1, n))) % MOD;
}

signed main()
{
    cin >> n;
    cout << comb (n) << '\n';
    return 0;
}