Cod sursa(job #1292289)

Utilizator MarcvsHdrMihai Leonte MarcvsHdr Data 13 decembrie 2014 23:38:04
Problema Kperm Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include <iostream>
#include <fstream>

#define MOD 666013

unsigned long long fact(int n) {
  unsigned long long sol = 1;
  for (int i = 2; i <= n; ++i) {
    sol = (sol * i) % MOD;
  }
  return sol;
}

int main()
{
  std::ifstream in("kperm.in");
  std::ofstream out("kperm.out");
  int n, k;
  in >> n >> k;
  unsigned long long sol = 0;
  if (k % 2 == 1) {
    sol = 1;
    for (int i = 1; i <= k; ++i) {
      sol = (sol * fact((n / k) + (i <= (n % k) ? 1 : 0))) % MOD;
    }
    sol = (sol * fact(n % k)) % MOD;
    sol = (sol * fact(k - n % k)) % MOD;
  }

  out << sol << std::endl;

  return 0;
}