Cod sursa(job #1222204)

Utilizator somuBanil Ardej somu Data 22 august 2014 16:20:43
Problema Dirichlet Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <iostream>
#include <fstream>
using namespace std;

#define ll long long
#define MOD 9999991
ifstream in("dirichlet.in");
ofstream out("dirichlet.out");

ll n,n2;
ll a = 1,b = 1,i;

ll pow(ll x, ll y) {
    
    if (y == 1)
        return x;
    
    if (y % 2 == 0)
        return 1LL * pow(x, y/2) * pow(x, y/2) % MOD;
    else
        return 1LL * (x * pow(x, y/2) % MOD) * pow(x, y/2) % MOD;
    
}

int main() {
    
    in >> n;
    
    n2 = 2 * n;
    
    for (i=2; i<=n; i++)
        a = 1LL * (a * i) % MOD;
    
    for (i=n+2; i<=n2; i++)
        b = 1LL * b * i % MOD;
    
    out << 1LL * (b * pow(a, MOD - 2) % MOD) % MOD << "\n";
    
    return 0;
}