Cod sursa(job #697185)

Utilizator Eugen01Vasilescu Eugen Eugen01 Data 28 februarie 2012 22:56:36
Problema Ciuperci Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.55 kb
#include<stdio.h>
#define mod 9999991

long long A,B,q,I,i,N;

void inv(long long &x,long long &y,long long a,long long b)  
{  
	if(!b)
	{
		x=1;
		y=0;  
	}
	else  
	{             
		inv(x,y,b,a%b);
		long long aux=x;
		x=y;
		y=aux-y*(a/b);
	}
}

int main()
{
	freopen("dirichlet.in","r",stdin);
	freopen("dirichlet.out","w",stdout);
	
	scanf("%lld",&N);
	
	A=1;B=1;
	for (i=N+2;i<=2*N;i++)
		A=(A*i)%mod;
	for (i=2;i<=N;i++)
		B=(B*i)%mod;
	
	inv(I,q,B,mod);
	
	if (I<=0)
	   I=mod+I%mod;
	
	printf("%lld",(A*I)%mod);
}