Cod sursa(job #1584529)

Utilizator hrazvanHarsan Razvan hrazvan Data 30 ianuarie 2016 11:19:09
Problema Kperm Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <stdio.h>
#define MAXN 5000
#define MOD 666013
int fact[MAXN + 1];

inline void precalc(){
  int i;
  fact[0] = 1;
  for(i = 1; i <= MAXN; i++)
    fact[i] = 1LL * fact[i - 1] * i % MOD;
}

int main(){
  precalc();
  FILE *in = fopen("kperm.in", "r");
  int n, k, rez = 1, x, y, i;
  fscanf(in, "%d%d", &n, &k);
  fclose(in);
  x = n % k;
  y = n / k;
  for(i = 0; i < x; i++)
    rez = 1LL * rez * fact[y + 1] % MOD;
  for(i = x; i < k; i++)
    rez = 1LL * rez * fact[y] % MOD;
  rez = 1LL * rez * fact[x] % MOD * fact[k - x] % MOD;
  FILE *out = fopen("kperm.out", "w");
  if(k % 2 == 0)
    rez = 0;
  fprintf(out, "%d", rez);
  fclose(out);
  return 0;
}