Cod sursa(job #2280103)

Utilizator Vlad_NituNitu Vlad-Petru Vlad_Nitu Data 10 noiembrie 2018 11:26:57
Problema Dirichlet Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <bits/stdc++.h>
#define ll long long
#define  MOD 9999991
using namespace std;
ifstream f ("dirichlet.in");
ofstream g("dirichlet.out");
ll n ;

ll putere(ll x , ll n)
{
        ll a;
    if (n == 0) return 1;
    if (n == 1) return x;
     a = putere(x , n/2);
    if (n % 2 == 0)
        return (a*a)%MOD;
    else return((x*a)%MOD*a)%MOD;
}

ll comb(ll n , ll k)
{
    ll numarator = 1;
    ll numitor = 1 ;
    ll i ;
    for (i = 2 ; i <= n ; ++i)
    {
        numarator = (numarator*i)%MOD;
        if (i <= k)      numitor = (numitor*i)%MOD;
        if (i <= n - k) numitor = (numitor*i)%MOD;
    }
    numitor = (numitor*(k+1))%MOD;
    numitor = putere(numitor , MOD-2) ;
    return (numarator*numitor)%MOD;
}
int main()
{
    f >> n;
    g << comb(2*n,n)%MOD;
    return 0 ;
}