Pagini recente » Monitorul de evaluare | Istoria paginii utilizator/daniel_2009 | Monitorul de evaluare | Cod sursa (job #3363936) | Cod sursa (job #3362921)
#include <fstream>
using namespace std;
ifstream f("dirichlet.in");
ofstream g("dirichlet.out");
int n;
const int MOD=9999991;
int powlg(int a,int b)
{
int val=1;
while(b)
{
if(b%2)
val=1ll*val*a%MOD;
b/=2;
a=1ll*a*a%MOD;
}
return val%MOD;
}
int comb(int n,int k)
{
if(k>n-k) k=n-k;
int c=1,f=1;
for(int i=1; i<=k; i++)
{
c=1ll*c*(n-i+1)%MOD;
f=1ll*f*i%MOD;
}
c=1ll*c*powlg(f,MOD-2)%MOD;
return c;
}
int main()
{
f>>n;
int val=comb(n+n,n);
int inv=powlg(n+1,MOD-2);
g<<1ll*val*inv%MOD;
return 0;
}