Cod sursa(job #188313)

Utilizator devilkindSavin Tiberiu devilkind Data 7 mai 2008 20:51:13
Problema Kperm Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.54 kb
#include <stdio.h>

#define NMAX 5002
#define modulo 666013

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

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

	scanf("%ld %ld",&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("%ld",sol);
}