Cod sursa(job #2923459)

Utilizator dragutamihai1234Draguta Mihai dragutamihai1234 Data 14 septembrie 2022 11:16:56
Problema Dirichlet Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.72 kb
#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;
}