Cod sursa(job #2782526)

Utilizator mateitudordmDumitru Matei mateitudordm Data 12 octombrie 2021 17:18:40
Problema Dirichlet Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <fstream>

using namespace std;

const long long MOD=9999991;
void invmod(long long a,long long b,long long *x,long long *y)
{
    if(b==0)
        *x=1,*y=0;
    else
    {
        long long xn,yn;
        invmod(b,a%b,&xn,&yn);
        *x=yn;
        *y=xn-(a/b)*yn;
    }
}

int main()
{
    ifstream cin("dirichlet.in");
    ofstream cout("dirichlet.out");
    long long n,p1=1,p2=1,x,y,i;
    cin>>n;
    for(i=n+1;i<=2*n;i++)
        p1=(p1*i)%MOD;
    for(i=1;i<=n+1;i++)
        p2=(p2*i)%MOD;
    invmod(p2,MOD,&x,&y);
    x%=MOD;
    while(x<0)
        x+=MOD;
    p1=(p1*x)%MOD;
    cout<<p1;
    return 0;
}