Cod sursa(job #168831)

Utilizator DITzoneCAdrian Diaconu DITzoneC Data 31 martie 2008 20:09:48
Problema Sandokan Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.5 kb
#include <stdio.h>

#define MOD 2000003
#define FOR(i,s,d) for(i=(s);i<(d);++i)

typedef long long lint;

lint n,k,sol;

lint put(lint x,lint i)
{
	if(!i) return 1;
	lint aux=put(x,i>>1);
	aux=(aux*aux)%MOD;
	if(i&1) aux=(aux*x)%MOD;
	return aux;
}

int main()
{
	freopen("sandokan.in","r",stdin);
	freopen("sandokan.out","w",stdout);
	scanf("%lld %lld",&n,&k);
	lint i;
	k=(n-1)%(k-1);
	sol=1;
	FOR(i,k+1,n)
		sol=(sol*i)%MOD;
	FOR(i,2,n-k)
		sol=(sol*put(i,MOD-2))%MOD;
	printf("%lld\n",sol);
	return 0;
}