Cod sursa(job #635648)

Utilizator elfusFlorin Chirica elfus Data 19 noiembrie 2011 13:49:37
Problema Dirichlet Scor 4
Compilator cpp Status done
Runda .com 2011 Marime 0.79 kb
#include <stdio.h>
#define MOD 9999991

long long fact (int N)
{
    long long sol = 1, i;

    for (i = 2; i <= N; i ++)
        sol = sol * i % MOD;
    return sol;
}

long long FastPow (long long A, long long B)
{
    if (B == 0)
        return 1;
    long long now = FastPow (A, B >> 1);
    if (B & 1)
        return ((long long)now * now * A) % MOD;
    else
        return (long long)now * now % MOD;
}

long long invers (long long val)
{
    return FastPow (val, MOD - 2);
}

int main ()
{
    int N;
    long long sol;

    freopen ("dirichlet.in", "r", stdin);
    freopen ("dirichlet.out", "w", stdout);

    scanf ("%d", &N);
    sol = (long long)fact (2 * N) * invers (fact (N)) % MOD * invers (fact (N + 1)) % MOD;
    printf ("%lld", sol);
    return 0;
}