Pagini recente » Cod sursa (job #2018375) | Cod sursa (job #876874) | Cod sursa (job #1702476) | Cod sursa (job #2963676) | Cod sursa (job #1776919)
#include <iostream>
#include <cstdio>
#define MAXN 5050
#define MOD 666013
using namespace std;
int fact[MAXN];
void prepare()
{
fact[0] = 1;
for (int i = 1; i < MAXN; i++)
fact[i] = (1LL*fact[i-1]*i) % MOD;
}
int rise(int a, int b)
{
int rez = 1;
for (int i = 1; i <= b; i++)
rez = (1LL*rez*a) % MOD;
return rez;
}
int main()
{
freopen("kperm.in", "r", stdin);
freopen("kperm.out", "w", stdout);
int n, k;
scanf("%d %d", &n, &k);
if (k % 2 == 0) {
printf("0");
return 0;
}
prepare();
int c = n/k;
int r = n - c*k;
int rez = (1LL*fact[r]%MOD*rise(fact[c+1], r)%MOD*fact[k-r]%MOD*rise(fact[c], k-r)%MOD + MOD) % MOD;
printf("%d", rez);
return 0;
}