Cod sursa(job #1191416)

Utilizator Al3ks1002Alex Cociorva Al3ks1002 Data 27 mai 2014 15:51:58
Problema Dirichlet Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include<cstdio>
#include<algorithm>
#include<vector>
#include<bitset>
#include<deque>
#include<queue>
#include<set>
#include<map>
#include<cmath>
#include<cstring>
#include<ctime>
#include<cstdlib>

using namespace std;
const int mod = 9999991;

int n,i,nfact,sol;

int explog(int a,int b)
{
    int r=1;

    for(i=1;i<=b;i<<=1)
    {
        if(i&b) r=(1LL*r*a)%mod;
        a=(1LL*a*a)%mod;
    }

    return r;
}

int main()
{
    freopen("dirichlet.in","r",stdin);
    freopen("dirichlet.out","w",stdout);

    scanf("%d",&n);

    nfact=sol=1;

    for(i=1;i<=n;i++) nfact=(1LL*nfact*i)%mod;

    for(i=n+1;i<=2*n;i++) sol=(1LL*sol*i)%mod;

    sol=(1LL*sol*explog(nfact,mod-2))%mod;

    sol=(1LL*sol*explog(n+1,mod-2))%mod;

    printf("%d\n",sol);

    return 0;
}