Cod sursa(job #2384057)

Utilizator Alex_AeleneiAlex Aelenei Ioan Alex_Aelenei Data 20 martie 2019 10:21:05
Problema Dirichlet Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <cstdio>

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