Cod sursa(job #188316)

Utilizator devilkindSavin Tiberiu devilkind Data 7 mai 2008 21:00:48
Problema Kperm Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.55 kb
#include <stdio.h>

#define NMAX 5002
#define modulo 666013

long long fact[NMAX];
long long n,i,j,k,x,y;
long long sol;
long long af[NMAX],rs[NMAX];

int main()
{
	freopen("kperm.in","r",stdin);
	freopen("kperm.out","w",stdout);

	scanf("%lld %lld",&n,&k);

	if ( ( k*(k+1)/2 )%k != 0 ) {printf("0");return 0;}
	
	for (i=1;i<=n;i++)
	{
		j=i%k;
		rs[j]++;
		af[j]++;
	}

	fact[0]=1;
	for (i=1;i<=n;i++)
		fact[i]=(fact[i-1]*i)%modulo;
	x=n%k;
	y=k-x;
	sol=(fact[x]*fact[y])%modulo;
	for (i=0;i<k;i++)
		sol=(sol*fact[ rs[i]] )%modulo;
	printf("%lld",sol);
}