Cod sursa(job #2512572)

Utilizator andu2006Alexandru Gheorghies andu2006 Data 21 decembrie 2019 11:52:47
Problema Dirichlet Scor 76
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <fstream>
#define MOD 9999991
using namespace std;
ifstream fin("dirichlet.in");
ofstream fout("dirichlet.out");
long long pw(long long x,long long p){
    if(p==0)
        return 1;
    long long aux=pw(x,p/2);
    if(p%2==1)
        return (x*aux*aux)%MOD;
    else
        return (aux*aux)%MOD;
}
long long DIV(long long a,long long b){
    return (a*pw(b,MOD-2))%MOD;
}
long long catalan(long long x){
    long long p=1;
    for(long long i=1;i<=x*2;i++){
        p=(p*i)%MOD;
    }
    for(long long i=0;i<2;i++){
        for(long long j=1;j<=x;j++){
            p=DIV(p,j);
        }
    }
    p=DIV(p,x+1);
    return p%MOD;
}
int main()
{
    long long n;
    fin>>n;
    fout<<catalan(n);
    return 0;
}