Cod sursa(job #1797292)

Utilizator RaduMirceaAndreiRadu Mircea Andrei RaduMirceaAndrei Data 4 noiembrie 2016 10:50:00
Problema Dirichlet Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
# include <fstream>
# define MOD 9999991
using namespace std;
ifstream fin("dirichlet.in");
ofstream fout("dirichlet.out");
int n,p1,p2,i;
long long x,y;
long long euclid(long long a,long long b,long long &x,long long &y){
    long long r,xa,ya;
    if(!b){
        x=1;
        y=0;
        return a;
    }
    r=euclid(b,a%b,xa,ya);
    x=ya;
    y=xa-(a/b)*ya;
    return r;
}
int main () {
    fin>>n;
    p1=1;
    p2=1;
    for(i=1;i<=n+1;i++)
        p1=(1LL*p1*i)%MOD;
    for(i=n+1;i<=2*n;i++)
        p2=(1LL*p2*i)%MOD;
    euclid(p1,MOD,x,y);
    x%=MOD;
    if(x<0)
        x+=MOD;
    fout<<1LL*p2*x%MOD<<"\n";
    return 0;
}