Pagini recente » Cod sursa (job #2836993) | Cod sursa (job #2846833) | Cod sursa (job #1591918) | Cod sursa (job #1712804) | Cod sursa (job #490652)
Cod sursa(job #490652)
#include <stdio.h>
#define MOD 666013
#define maxM 5010
int Perm[maxM];
int log_pow (int A, int N) {
if (N == 0) return 1;
if (N == 1) return A;
int x = log_pow(A, N / 2);
x = 1LL * x * x % MOD;
if (N % 2 == 1)
return 1LL * x * A % MOD;
return x;
}
int main () {
int N, K, i, P, rest;
freopen("kperm.in", "r", stdin);
freopen("kperm.out", "w", stdout);
scanf("%d%d", &N, &K);
if (K % 2 == 0) {
printf("%d\n", 0);
return 0;
}
P = N / K;
rest = N - P * K;
for (i = 2, Perm[1] = 1; i <= K; ++ i)
Perm[i] = (Perm[i - 1] * i) % MOD;
printf("%d\n", (int) 1LL * (1LL * log_pow(Perm[P + 1], rest) * Perm[rest] % MOD) * (1LL * log_pow(Perm[P], K - rest) * Perm[K - rest] % MOD) % MOD);
return 0;
}