Pagini recente » Cod sursa (job #483162) | Cod sursa (job #2192308) | Cod sursa (job #2174407) | Cod sursa (job #3041402) | Cod sursa (job #1824594)
#include <bits/stdc++.h>
using namespace std;
typedef long long i64;
const int MOD = 666013;
int fact[5005];
i64 expow(i64 b, int e) {
i64 ant = 1LL;
for (; e; e>>= 1) {
if (e & 1)
ant = (ant * b) % MOD;
b = (b * b) % MOD; }
return ant; }
int main(void) {
ifstream fi("kperm.in");
ofstream fo("kperm.out");
int n, k;
i64 ant;
fi >> n >> k;
if (k % 2 == 0) {
fo << 0 << '\n';
return 0; }
fact[0] = 1;
for (int i = 1; i <= n; ++i)
fact[i] = (1LL * i * fact[i - 1]) % MOD;
ant = fact[n % k] * fact[k - n % k];
ant = (ant * expow(fact[n / k + 1], n % k)) % MOD;
ant = (ant * expow(fact[n / k], k - n % k)) % MOD;
fo << ant << '\n';
return 0; }