Pagini recente » Cod sursa (job #969581) | Cod sursa (job #133705) | Cod sursa (job #2682433) | Cod sursa (job #1689896) | Cod sursa (job #735711)
Cod sursa(job #735711)
#include<iostream>
#include<fstream>
using namespace std;
void gcd(int &x, int &y, int a, int b)
{
int aux;
if (b==0) {
x = 1;
y = 0;
}
else {
gcd(x,y,b,a % b);
aux=x;
x=y;
y=aux-y*(a/b);
}
}
int combinari(int n, int k)
{
int i,a,b,inv,ins;
a=1;
for(i=k+1;i<=n;i++)
a=(1LL*a*i)%9999991;
b=1;
for(i=1;i<=k;i++)
b=(1LL*b*i)%9999991;
gcd(inv,ins,b,9999991);
if(inv<=0)
inv=9999991+inv%9999991;
a=(1LL*a*inv)%9999991;
return a;
}
int main ()
{
int c,inv,ins,n;
ifstream f("dirichlet.in");
ofstream g("dirichlet.out");
f>>n;
f.close();
c=combinari(2*n,n);
gcd(inv,ins,n+1,9999991);
if(inv<=0)
inv=9999991+inv%9999991;
c=(1LL*c*inv)%9999991;
g<<c;
g.close();
return 0;
}