Cod sursa(job #635706)

Utilizator savimSerban Andrei Stan savim Data 19 noiembrie 2011 14:22:58
Problema Dirichlet Scor 100
Compilator cpp Status done
Runda .com 2011 Marime 0.64 kb
#include <fstream>

#define prim 9999991

using namespace std;

ifstream f("dirichlet.in");
ofstream g("dirichlet.out");

inline int inm(int x, int p) {
    if (p == 1)
        return x;

    int ans = inm(x, p >> 1);
    ans = (1LL * ans * ans) % prim;
    if (p & 1)
        ans = (1LL * ans * x) % prim;

    return ans;
}

int main() {

    int n;

    f >> n;

    int f[2000010]; f[0] = 1;
    for (int i = 1; i <= 2 * n; i++)
        f[i] = (1LL * i * f[i - 1]) % prim;

    int v1 = inm(f[n], prim - 2);
    int v2 = inm(f[n + 1], prim - 2);
    int val = (1LL * v1 * v2) % prim;

    g << (1LL * f[2 * n] * val) % prim << "\n";

    return 0;
}