Pagini recente » Cod sursa (job #1520233) | Cod sursa (job #284018) | Cod sursa (job #1053676) | Cod sursa (job #2840940) | Cod sursa (job #2277263)
#include <bits/stdc++.h>
using namespace std;
typedef long long int ll;
typedef long double ld;
const int MOD = 666013;
ifstream fin("kperm.in");
ofstream fout("kperm.out");
int main() {
int n, k; fin >> n >> k;
if (k % 2 == 0) {
fout << 0; fout.flush();
exit(0);
}
vector < int > v(k + 1);
for (int i = 1; i <= k; ++i) {
v[i] = (n - i) / k + 1;
}
vector < int > fact(k + 1);
fact[0] = 1;
for (int i = 1; i <= k; ++i) {
fact[i] = (1LL * i * fact[i - 1]) % MOD;
}
int ans = 1;
int len, val;
len = 0; val = v[1];
for (int i = 1; i <= k; ++i) {
ans = (1LL * ans * fact[v[i]]) % MOD;
if (v[i] == val) {
++len;
} else {
ans = (1LL * ans * fact[len]) % MOD;
len = 1;
val = v[i];
}
}
ans = (1LL * ans * fact[len]) % MOD;
fout << ans;
return 0;
}