Cod sursa(job #2720105)

Utilizator PredescuSebastianIonPredescu Sebastian Ion PredescuSebastianIon Data 10 martie 2021 16:37:55
Problema Dirichlet Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <fstream>
#define mod 9999991

using namespace std;
ifstream f("dirichlet.in");
ofstream g("dirichlet.out");
unsigned long long n,x;
unsigned long long solve(unsigned long long a,unsigned long long b)
{
    if(b==0)return 1;
    unsigned long long x=solve(a,b/2);
    if(b%2==0)return (x*x)%mod;
    return (((x*x)%mod)*a)%mod;
}
unsigned long long catalan(unsigned long long n)
{
    unsigned long long i,t=1,s=1;
    for(i=1; i<=n; ++i)t=(t*i)%mod;
    for(i=n+2; i<=2*n; i++)s=(s*i)%mod;
    t=solve(t,mod-2);
    return (s*t)%mod;
}
int main()
{
    f>>n;
    x=catalan(n);
    g<<x<<'\n';
    return 0;
}