Cod sursa(job #2535820)

Utilizator GhitzarinoGhita Alexandru Ghitzarino Data 1 februarie 2020 11:40:19
Problema Dirichlet Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.57 kb
#include <fstream>

using namespace std;
#define M 9999991
#define ull unsigned long long
ifstream f("dirichlet.in");
ofstream g("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()
{
    f>>n;
    x=catalan(n);
    g<<x;
    return 0;
}