Cod sursa(job #782211)

Utilizator MtkMarianHagrSnaf MtkMarian Data 26 august 2012 12:35:26
Problema Kperm Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include<cstdio>
#include<cmath>
using namespace std;
#define MODULO 666013


int main()
{
	freopen("kperm.in","r",stdin);
	freopen("kperm.out","w",stdout);
	
	long long rez=1,n,k,r,d,c,rf,cf1,cf,i,df,cf2,cf3;

	scanf("%lld %lld",&n,&k);
	
	if(k%2==0)printf("0");
	else
	{
		c=n/k;
		r=n%k;		
		d=k-r;

	
		for(rf=1, i=2;i<=r;++i)
			rf=(rf*i)%MODULO;
		
	
		for(df=1, i=2;i<=d;++i)
			df=(df*i)%MODULO;
		
		for(cf=1, i=2;i<=c;++i)
			cf=(cf*i)%MODULO;

		
				
				
		for( cf2=1,i=1;i<=d;++i)
			cf2=(cf2*cf)%MODULO;
		
		cf=(cf*(c+1))%MODULO;	

		for(cf3=1,i=1;i<=r;++i)
			cf3=(cf3*cf)%MODULO;

	
		rez=(rez*rf)%MODULO;
		rez=(rez*df)%MODULO;
		rez=(rez*cf2)%MODULO;
		rez=(rez*cf3)%MODULO;
		
		printf("%lld\n",rez);
	}
	return 0;
}