Cod sursa(job #2224283)

Utilizator nurof3nCioc Alex-Andrei nurof3n Data 23 iulie 2018 16:21:08
Problema Dirichlet Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <fstream>

using namespace std;

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

const int MOD = 9999991;
long long N, num, denom;

//raspunsul este Catalan(N)

long long power(long long b, int p)
{
    long long x = 1;
    while(p)
        if(p & 1)
        {
            p--;
            x = x * b % MOD;
        }
        else
        {
            p >>= 1;
            b = b * b % MOD;
        }
    return x;
}
long long invers_modular(long long x)
{
    //fermat
    return power(x, MOD - 2);
}
int main()
{
    in >> N;
    num = 1, denom = 1;
    for(int i = 2; i <= N; i++)
    {
        num = num * (N + i) % MOD;
        denom = denom * i % MOD;
    }
    out << num * invers_modular(denom) % MOD;
    return 0;
}