Cod sursa(job #2331133)

Utilizator stefan_creastaStefan Creasta stefan_creasta Data 29 ianuarie 2019 10:58:11
Problema Kperm Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <cstdio>
using namespace std;
const int MOD = 666013;

int main() {
  long long n, k;
  freopen("kperm.in", "r", stdin);
  freopen("kperm.out", "w", stdout);
  scanf("%lld%lld", &n, &k);
  long long r = n % k;
  long long c = n / k + 1;
  long long sol = 1;
  for(int i = 1; i <= r; i++) {
    sol = sol * i;
    sol %= MOD;
  }
  for(int i = 1; i <= k - r; i++) {
    sol = sol * i;
    sol %= MOD;
  }
  long long sol1 = 1;
  for(int i = 1; i <= c; i++) {
    sol1 = sol1 * i;
    sol1 %= MOD;
  }
  for(int i = 1; i <= r; i++) {
    sol = sol * sol1;
    sol %= MOD;
  }
  long long sol2 = 1;
  for(int i = 1; i < c; i++) {
    sol2 = sol2 * i;
    sol2 %= MOD;
  }
  for(int i = 1; i <= k - r; i++) {
    sol = sol * sol2;
    sol %= MOD;
  }
  if(k % 2 == 0) {
    printf("0\n");
  }
  else {
    printf("%lld\n", sol);
  }
  return 0;
}