Cod sursa(job #1695044)

Utilizator oldatlantianSerban Cercelescu oldatlantian Data 26 aprilie 2016 14:51:42
Problema Dirichlet Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <cstdio>
using namespace std;
typedef long long i64;
const int MOD = 9999991;

inline i64 pow(i64 b, i64 e){
    i64 ans=1;
    while(e) {
        if(e&1)
            ans=ans*b%MOD;
        b=b*b%MOD;
        e>>=1;
    }
    return ans;
}

inline int ans(i64 n) { ///(2*n)!/(n+1)!/n!
    i64 t=1,ans=1;
    int i,n2=2*n;

    for(i=n+1; i<=n2; ++i)
        ans = ans*i % MOD;
    for(i=2, ++n; i<=n; ++i)
        t=t*i%MOD;

    ans = ans*pow(t,MOD-2)%MOD;

    return int(ans%MOD);
}

int main(void){
    freopen("dirichlet.in","r",stdin);
    freopen("dirichlet.out","w",stdout);
    int n;
    scanf("%d",&n);
    printf("%d",ans(n));
    return 0;
}