Cod sursa(job #638284)

Utilizator AndrewTheGreatAndrei Alexandrescu AndrewTheGreat Data 20 noiembrie 2011 20:03:07
Problema Dirichlet Scor 0
Compilator cpp Status done
Runda .com 2011 Marime 0.68 kb
#include <iostream>
#include <stdio.h>
#define i64 long long

using namespace std;

i64 mod = 9999991;

i64 put(i64 N, i64 P)
{
    i64 rez = 1;
    while(P)
    {
        if(P & 1)
            rez = (rez * N) % mod;
        N = (N * N) % mod;
        P >>= 1;
    }
    return rez;
}

int main()
{
    freopen ("diriclet.in","r",stdin);
    freopen ("diriclet.out","w",stdout);

    i64 N, val, C, i, F = 1;
    scanf("%lld", &N);
    for(i = 1, val = 1; i < N; i++)
    {
        C = 2 * ( 2 * i + 1);
        val = (val * C) % mod;
        F = (F * (i + 2)) % mod;
    }
    val = (val * put(F, mod - 2)) % mod;
    printf("%lld\n", val);
    return 0;
}