Cod sursa(job #1810146)

Utilizator RaduXD1Nicolae Radu RaduXD1 Data 19 noiembrie 2016 17:31:37
Problema Dirichlet Scor 96
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <fstream>
#define MOD 9999991

using namespace std;
ifstream fin ("dirichlet.in");
ofstream fout("dirichlet.out");
long long n,s,a,b,c,i;

long long ridicare(long long a, long long b)
{
    long long p=1;
    while(b!=0)
    {
        if(b%2==1) {
            p*=a;
            p%=MOD;
        }
        a*=a;
        a%=MOD;
        b/=2;
    }
    return p;
}

long long fact(int a)
{
    long long i,sum=1;
    for(i=2;i<=a;i++) {
        sum*=i;
        sum %= MOD;
    }
    return sum;
}

int main ()
{
    fin>>n;
    a=fact(n*2);
    b=fact(n);
//    fout<<a<<" "<<b<<" "<<c;
    b=ridicare(b, MOD-2);
    c=ridicare(n+1, MOD-2)%MOD;
    int comb = ((a*b)%MOD*b%MOD)*c%MOD;
    fout<<comb;
    fin.close();
    fout.close();
    return 0;
}