Cod sursa(job #1679141)

Utilizator raddudjPogonariu Radu raddudj Data 7 aprilie 2016 18:25:53
Problema Dirichlet Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <cstdio>

using namespace std;

const int MOD=9999991,Nmax=1000000;
int fact[2*Nmax+5];


inline void factoriale()
{
    int i;
    fact[0]=1;
    for(i=1;i<=2000000;++i)
        fact[i]=(1LL*fact[i-1]*i)%MOD;
}

inline int pow(int x, int p)
{
    int put=1;
    while(p)
    {
        if(p&1)
        {
            put=(1LL*put*x)%MOD;
            --p;
        }
        p>>=1;
        x=(1LL*x*x)%MOD;
    }
    return put;
}

int main()
{
    int N,aux;
    freopen("dirichlet.in","r",stdin);
    freopen("dirichlet.out","w",stdout);
    factoriale();
    scanf("%d", &N);
    aux=(1LL*pow(fact[N],MOD-2)*pow(fact[N],MOD-2)%MOD*pow(N+1,MOD-2))%MOD;
    printf("%d\n", (1LL*fact[2*N]*aux)%MOD);
    return 0;
}