Cod sursa(job #2058337)

Utilizator tifui.alexandruTifui Ioan Alexandru tifui.alexandru Data 5 noiembrie 2017 15:02:42
Problema Dirichlet Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <bits/stdc++.h>
#define MOD 9999991
#define ll long long
using namespace std;
ifstream f("dirichlet.in");
ofstream g("dirichlet.out");
ll put(ll a, ll n)
{
    ll r=1;
    while(n)
    {
        if(n&1)
            r=(r*a)%MOD;
        n>>=1;
        a=(a*a)%MOD;
    }
    return r;
}
ll fct(int n)
{
    ll p;
    for(p=1;n;n--)
    {
        p=(p*n)%MOD;
    }
    return p;
}
ll fct2(int n)
{
    ll p;
    int lim=(n>>1);
    for(p=1;n>lim;n--)
    {
        p=(p*n)%MOD;
    }
    return p;
}
int main()
{
    int n;
    f>>n;
    ll p1,p2;
    p1=fct(n);
    p1=(p1*(n+1))%MOD;
    p2=fct2(2*n);
    p1=put(p1,MOD-2);
    g<<(p1*p2)%MOD;

    return 0;
}