Cod sursa(job #2535810)

Utilizator Danut200333Dumitru Daniel Danut200333 Data 1 februarie 2020 11:36:32
Problema Dirichlet Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.58 kb
#include <fstream>

using namespace std;
#define M 9999991
#define ull unsigned long long
ifstream fin("dirichlet.in");
ofstream fout("dirichlet.out");
ull n,x;
ull rise (ull a,ull b)
{
    if(b==0) return 1;
    ull x=rise(a,b/2);
    if(b%2==0) return (x*x)%M;
    return (((x*x)%M)*a)%M;
}
ull catalan(ull n)
{
    ull i,t=1,s=1;
    for(i=1;i<=n;++i)
    {
        t=(t*i)%M;
    }
    for(i=n+2;i<=2*n;i++)
    {
        s=(s*i)%M;
    }
    t=rise(t,M-2);
    return (s*t)%M;
}
int main()
{
    fin>>n;
    x=catalan(n);
    fout<<x;
    return 0;
}