Cod sursa(job #1816673)

Utilizator LeVladzCiuperceanu Vlad LeVladz Data 26 noiembrie 2016 18:43:06
Problema Dirichlet Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include<fstream>
using namespace std;
ifstream fin("dirichlet.in");
ofstream fout("dirichlet.out");
long long p,n;
long long putere(long long a,long long b)
{
    if(b==0)
    {
        return 1;
    }
    long long p=1;
    while(b!=0)
    {
        if(b%2==1)
        {
            p=p*a;
            p%=9999991;
        }
        a=a*a;
        a%=9999991;
        b/=2;
    }
    return p;
}
long long fact(long long n)
{
    long long p=1;
    for(int i=1;i<=n;i++)
    {
        p*=i;
        p%=9999991;
    }
    return p;
}
long long mid(long long n)
{
    long long p=1;
    for(int i=n/2+1;i<=n;i++)
    {
        p*=i;
        p%=9999991;
    }
    return p;
}
int main()
{
    fin>>n;
    p=1;
    p*=putere(fact(n),9999989);
    p%=9999991;
    p*=mid(2*n);
    p%=9999991;
    p*=putere(n+1,9999989);
    p%=9999991;
    fout<<p;
    return 0;
}