Cod sursa(job #782199)

Utilizator MtkMarianHagrSnaf MtkMarian Data 26 august 2012 12:01:50
Problema Kperm Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include<cstdio>
#include<cmath>
using namespace std;

long long factorial(int n)
{
  return (n == 1 || n == 0) ? 1 : factorial(n - 1) * n;
}
int main()
{
	freopen("kperm.in","r",stdin);
	freopen("kperm.out","w",stdout);
	int n,k,c,r,d;
	long long rez=1,x,x1,a;

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

		rez=(long long)factorial(r)%666013;
		//printf("%lld",rez);
		rez=(long long)rez*factorial(d)%666013;

		
		x1=x=(long long)factorial(c+1)%666013;		
		for(int i=1;i<r;++i)
			x1=(long long)x1*x%666013;

		rez=(long long)rez*x1%666013;
		x1=x=(long long)factorial(c)%666013;
			
		for(int i=1;i<d;++i)
			x1=(long long)x1*x%666013;

		rez=(long long)rez*x1%666013;
		printf("%lld",rez);
	}
	return 0;
}