Cod sursa(job #2223134)

Utilizator lucametehauDart Monkey lucametehau Data 19 iulie 2018 09:05:22
Problema Dirichlet Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <fstream>

using namespace std;

ifstream cin ("dirichlet.in");
ofstream cout ("dirichlet.out");

const int MOD = 9999991;
const int NMAX = 1e6;

int n;

int lgput(int n, int p) {
  int a = n, sol = 1;
  for(int i = 0; (1 << i) <= p; i++) {
    if((1 << i) & p)
      sol = 1LL * sol * a % MOD;
    a = 1ll * a * a % MOD;
  }
  return sol;
}

int c(int n) {
  int sol = 1, fact = 1;
  for(int i = n + 2; i <= 2 * n; i++)
    sol = 1LL * sol * i % MOD;
  for(int i = 2; i <= n; i++)
    fact = 1LL * fact * i % MOD;
  return 1LL * sol * lgput(fact, MOD - 2) % MOD;
}

int main() {
  cin >> n;
  cout << c(n);
  return 0;
}