Cod sursa(job #2280052)

Utilizator AndreiTudorSpiruAndrei Spiru AndreiTudorSpiru Data 10 noiembrie 2018 11:09:37
Problema Dirichlet Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <bits/stdc++.h>
#define MOD 9999991
#define ll long long

using namespace std;
ifstream f("dirichlet.in");
ofstream g("dirichlet.out");
ll putere (ll x,ll n)
{
    ll a;
    if(n==0)return 1;
    else 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 combinari(ll n,ll k)
{
    ll i,r=1,t=1;

    for(i=2;i<=n;i++)
    {
        r=(r*i)%MOD;
        if(i<=k)t=(t*i)%MOD;
        if(i<=n-k)t=(t*i)%MOD;
    }

    t=(t*(k+1))%MOD;
    return (r*putere(t,MOD-2))%MOD;
}
ll n;
int main()
{
    f>>n;
    g<<combinari(2*n,n)%MOD;
    return 0;
}