Cod sursa(job #2384055)

Utilizator alexradu04Radu Alexandru alexradu04 Data 20 martie 2019 10:18:51
Problema Dirichlet Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <bits/stdc++.h>

using namespace std;
const int MOD=9999991;
long long fact (int n)
{
    long long sol=1;
    for(int i=1;i<=n;++i)
    {
        sol=(sol*i)%MOD;
    }
    return sol;
}
long long fastpow (int a,int b,int MOD)
{
    long long p=1;
    long long aa=a;
    for(p=1;b!=0;b>>=1)
    {
        if(b&1)
        {
            p=(p*aa);
            p%=MOD;
        }
        aa=(aa*aa)%MOD;
    }
    return p;
}
long long invers (int n)
{
    return fastpow(n,MOD-2,MOD);
}
int main()
{
    freopen("dirichlet.in","r",stdin);
    freopen("dirichlet.out","w",stdout);
    int n;
    scanf("%d",&n);
    long long ans=(fact(2*n)*invers(fact(n))%MOD*invers(fact(n+1)))%MOD;
    printf("%lld",ans);
    return 0;
}