Cod sursa(job #26628)

Utilizator love_for_uSpancioc Riana love_for_u Data 5 martie 2007 19:41:51
Problema Kperm Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <stdio.h>
#define MOD 666013

int N, K, a, b;
int sol = 1;

int fact(int nr)
{
	int i, rez = 1;
	
	if (nr == 0) return 1;
	
	for (i = 1; i <= nr; i++) rez = (rez * i) % MOD;
	
	return rez;
}

int put(int nr, int p)
{
	int i, rez = 1; 
	
	if (p == 0) return 1;
	
	for (i = 1; i <= p; i++) rez = (rez * nr) % MOD;
	
	return rez;
}

int main()
{
	freopen("kperm.in", "r", stdin);
	freopen("kperm.out", "w", stdout);
	
	scanf("%d %d", &N, &K);
	
	b = N % K;
	a = K - b;
	
	if (N % 2 == 0) { printf("0\n"); return 0; }
	
	sol = (sol * fact(a)) % MOD;
	
	sol = (sol * fact(b)) % MOD;
	
	sol = sol * put(fact(N/K + 1), b);
	sol = sol * put(fact(N/K), a);	
	
	printf("%d\n", sol);
	
	return 0;
}