Cod sursa(job #2662795)

Utilizator Asgari_ArminArmin Asgari Asgari_Armin Data 24 octombrie 2020 15:09:05
Problema Dirichlet Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <fstream>

using namespace std;

ifstream fin( "dirichlet.in" );
ofstream fout( "dirichlet.out" );

const int MOD = 9999991;

long long powx( long long x, long long y ){
  long long p = 1;
  while( y ){
    if( y & 1 )
      p = (1LL * p * x) % MOD;
    x = (1LL * x * x) % MOD;
    y >>= 1;
  }
  return p;
}

int main() {
  ///FORMULA (2 * n)! / (n + 1)! / n! = ((n + 2) * .... (2 * n)) / n!
  long long n, mst, mdr, i;
  fin >> n;
  mst = mdr = 1;
  for( i = 2; i <= n; ++i )
    mst = (mst * i) % MOD;
  for( i = n + 2; i <= 2 * n; ++i )
    mdr = (mdr * i) % MOD;
  fout << (mdr * powx(mst, MOD - 2)) % MOD;
  return 0;
}