Cod sursa(job #1155338)

Utilizator dr_personalityEftime Andrei Horatiu dr_personality Data 26 martie 2014 20:37:28
Problema Dirichlet Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
//Raspunsul este al n-lea Numar Catalan
#include <fstream>
using namespace std;
ifstream in("dirichlet.in");
ofstream out("dirichlet.out");

const long long mod = 9999991;
long long n, ac = 1, li = 1, chestie;
 
long long catalan(long long a,long long b)
{
    if(b==0)
        return 1;
	 if(b==1)
        return (a%mod);
    if(b%2==1)
    {
        return ((catalan(a,b-1)*a)%mod);
    }
    else
    {
        long long aux = catalan(a, b/2);
        return ((aux * aux)%mod);
    }
}
 
int main()
{
	int player_unu=0;

    in>>n;
 
    chestie = n*2;
    for(long long i = n + 2; i<=chestie; i++)
        ac = (ac * i) % mod;
    for(long long i = 1; i<=n; i++)
        li = (li * i) % mod;
 
    long long invmod=catalan(li, mod-2);
    out<<(invmod*ac)%mod<<'\n';
 
    return player_unu;
}