Cod sursa(job #3209660)

Utilizator alexandrubilaBila Alexandru-Mihai alexandrubila Data 3 martie 2024 11:26:36
Problema Dirichlet Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <fstream>

using namespace std;
const int MOD = 9999991;

ifstream f("dirichlet.in");
ofstream g("dirichlet.out");

int powlg(int x, int p)
{
    int res = 1;
    while (p > 0)
    {
        if (p & 1)
            res = 1LL * res * x % MOD;
        x = 1LL * x * x % MOD;
        p >>= 1;
    }
    return res;
}

int Catalan(int n)
{
    int f1 = 1;
    int f2 = n + 1;
    for (int i = 1 ; i <= n ; i++)
    {
        f1 = 1LL * f1 * (n + i) % MOD;
        f2 = 1LL * f2 * i % MOD;
    }
    int res = 1LL * f1 * powlg(f2, MOD - 2) % MOD;
    
    return res;
}

int main()
{
    int n;
    f >> n;
    g << Catalan(n);

    f.close();
    g.close();
    return 0;
}