Cod sursa(job #2664392)

Utilizator Fantastic_Mantudor voicu Fantastic_Man Data 28 octombrie 2020 16:19:37
Problema Dirichlet Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <fstream>
using namespace std;
const int MOD = 9999991;
ifstream fin("dirichlet.in");
ofstream fout("dirichlet.out");
int lgput ( int a, int n ) {
    int p = 1;
    while (n > 0) {
        if (n % 2 == 1)
            p = ( ( long long ) p * a) % MOD;
        a = ( long long ) a * a % MOD;
        n >>= 1;
    }
    return p;
}
int main() {
    // ( n + 2 ) * ... * ( n + n ) / n!
    int n, f, p, i;
    fin >> n;
    f = 1;
    for ( i = 2; i <= n; i++ )
        f = ( long long ) f * i % MOD;
    p = 1;
    for ( i = n + 2; i <= 2 * n; i++ )
        p = ( long long ) p * i % MOD;
    fout << ( long long ) p * lgput ( f, MOD - 2 ) % MOD;
    
    return 0;
}