Pagini recente » Cod sursa (job #2576766) | Cod sursa (job #2492115) | Cod sursa (job #2294071) | Cod sursa (job #2535386) | Cod sursa (job #717238)
Cod sursa(job #717238)
#include<fstream>
#define MOD 9999991
using namespace std;
long long N,N2,sol;
inline void Citire()
{
ifstream fin("dirichlet.in");
fin>>N; N2=2*N;
fin.close();
}
inline void InversModular(long long A,long long B,long long &x,long long &y)
{
if(B==0LL)
{
x=1LL;
y=0LL;
return;
}
InversModular(B,A%B,x,y);
long long aux,q=A/B;
aux=x;
x=y;
y=aux-y*q;
}
inline long long Catalan()
{
long long i,A=1,B=1,inv=0LL,aux=0LL,Final;
for(i=N+2;i<=N2;i++)
{
A*=i;
A%=MOD;
}
for(i=2;i<=N;i++)
{
B*=i;
B%=MOD;
}
InversModular(B,MOD,inv,aux);
inv%=MOD;
if(inv<0)
inv+=MOD;
Final=A*inv;
Final%=MOD;
return Final;
}
inline void Afisare()
{
ofstream fout("dirichlet.out");
fout<<sol<<"\n";
fout.close();
}
int main()
{
Citire();
sol=Catalan();
Afisare();
return 0;
}