Cod sursa(job #2565877)

Utilizator adiaioanaAdia R. adiaioana Data 2 martie 2020 17:28:21
Problema Dirichlet Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <fstream>
#define MOD 9999991
using namespace std;
ifstream cin("dirichlet.in");
ofstream cout("dirichlet.out");
long long Nfact;
inline long long power(int nr, int exp)
{
    long long a=nr, r=1;
    while(exp)
    {
        if(exp%2==1)
            r=(r*a)%MOD;
        a=(a*a)%MOD;
        exp/=2;
    }
    return r;
}

inline int fact(int k)
{
    long long p=1;
    Nfact=1;
    for(int j=1; j<=k/2; ++j)
        Nfact=(Nfact*j)%MOD, p=Nfact;
    for(int j=k/2+1; j<=k; ++j)
        p=(p*j)%MOD;
    return p;
}

int main()
{
    long long ans=0;
    int N;
    cin>>N;
    ans=(((fact(2*N)*power(Nfact,MOD-2)%MOD)*power(Nfact,MOD-2))%MOD*power(N+1,MOD-2))%MOD;
    cout<<ans<<'\n';
    return 0;
}