Cod sursa(job #362529)

Utilizator antoanelaAntoanela Siminiuc antoanela Data 9 noiembrie 2009 22:24:52
Problema Kperm Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.52 kb
#include <cstdio>
#define X 666013
#define ll long long

int fact(int x)
{
	int i;
	for (i=x-1; i>1; i--) x=x*i%X;
	return x;
}

int put (int x, int c)
{
	int i, p=1;
	for (i=1; i<=c; i++) p=(ll)p*x%X;
	return p;
}

int main()
{
	freopen("kperm.in","r",stdin);
	freopen("kperm.out","w",stdout);
	int n, k, r, c, p;
	scanf("%d %d",&n,&k);
	if (!(k%2)) printf("0\n"); else
	{
		r=n%k;
		c=n/k;
		p=fact(r);
		p=(ll) p*fact(k-r)%X;
		p=(ll) p*put(c+1,r)%X;
		p=(ll) p*put(c,k-r)%X;
		printf("%d",p);
	}
}