Pagini recente » Borderou de evaluare (job #674681) | Borderou de evaluare (job #2077139) | Borderou de evaluare (job #851303) | Borderou de evaluare (job #1008999) | Cod sursa (job #2720105)
#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;
}