Cod sursa(job #1600351)

Utilizator PopoviciRobertPopovici Robert PopoviciRobert Data 14 februarie 2016 21:54:43
Problema Dirichlet Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <cstdio>
#define MOD 9999991
inline long long pow(long long a,long long b){
    long long nr=a,rez=1;
    while(b>0){
        if(b%2==1)
           rez=(rez*nr)%MOD;
        b/=2;
        nr=(nr*nr)%MOD;
    }
    return rez;
}
int main(){
    FILE*fi,*fout;
    long long i,a,b,x;
    int n;
    fi=fopen("dirichlet.in" ,"r");
    fout=fopen("dirichlet.out" ,"w");
    fscanf(fi,"%d" ,&n);
    x=1;
    for(i=1;i<=n;i++)
       x=(x*i)%MOD;
    a=pow(x,MOD-2);
    x=(x*(n+1))%MOD;
    b=pow(x,MOD-2);
    for(i=n+2;i<=2*n;i++)
       x=(x*i)%MOD;
    fprintf(fout,"%lld" ,(((a*b)%MOD)*x)%MOD);
    fclose(fi);
    fclose(fout);
    return 0;
}