Cod sursa(job #2331160)

Utilizator MoodyFaresFares Mohamad MoodyFares Data 29 ianuarie 2019 11:26:32
Problema Kperm Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <cstdio>

const int MOD = 666013;

int log_pow(int b, int e) {
  int sol = 1;
  for (int i = 1; i <= e; i++)
    sol = (1LL * sol * b) % MOD;
  return sol;
}

int fact(int k) {
  int sol = 1;
  for (int i = 2; i <= k; i++)
    sol = (1LL * sol * i) % MOD;
  return sol;
}

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\n");
    return 0;
  }
  int countMod1 = n / k + 1;
  int countMod2 = n / k;
  int r = n % k;
  int ans = (1LL * (1LL * log_pow(fact(countMod1), r) * log_pow(fact(countMod2), k - r)) % MOD * fact(r) % MOD * fact(k - r)) % MOD;
  printf("%d\n", ans);
  return 0;
}