Pagini recente » Profil Ovidiu-Antonio | Cod sursa (job #2944343) | Cod sursa (job #3234051) | Cod sursa (job #2428684) | Cod sursa (job #25112)
Cod sursa(job #25112)
#include <stdio.h>
#include <stdlib.h>
#define NMAX 5010
#define P 666013
#define BIGINT long long //__int64
BIGINT fact[NMAX];
int i, j, k, r, N, K, sum, insol;
BIGINT nsol;
void nosol(void)
{
freopen("kperm.out", "w", stdout);
printf("0\n");
exit(0);
}
int main()
{
freopen("kperm.in", "r", stdin);
scanf("%d %d", &N, &K);
fact[0] = 1;
for (i = 1; i <= N; i++)
fact[i] = (fact[i - 1] * (BIGINT) i) % P;
r = N % K;
sum = (K * (K - 1)) / 2;
if (sum % K != 0)
nosol();
nsol = fact[r] % P;
for (i = 1; i <= r; i++)
nsol = (nsol * fact[(N / K) + 1]) % P;
nsol = (nsol * fact[K - r]) % P;
for (i = r + 1; i <= K; i++)
nsol = (nsol * fact[N / K]) % P;
freopen("kperm.out", "w", stdout);
printf("%d\n", (int) nsol);
return 0;
}