Cod sursa(job #2280016)

Utilizator danin01Nastase Daniel danin01 Data 10 noiembrie 2018 11:00:58
Problema Dirichlet Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <fstream>
#define M 9999991
#include <iostream>
using namespace std;

ifstream f("dirichlet.in");
ofstream g("dirichlet.out");


long long putere(long long x,long long n)

{

    if(n==0)return 1;

    if(n==1)return x;

    long long a = putere(x,n/2);

    if(n%2==0)

    {

        return ((a*a)%M);

    }

    else

    {

        return (((a*x)%M)*a)%M;

    }

}



long long comb(long long n,long long k)

{

    long long r=1,t=1;

    for(int i=2;i<=n;++i)

    {

        r = (r*i)%M;

        if(i<=k)t = (t*i)%M;

        if(i<=n-k)t=(t*i)%M;

    }

    r = (r*putere(t,M-2))%M;

    return r;

}

long long n;

int main()
{
    f>>n;
    long long sus=1,jos=1;
    for(int i=n+2;i<=2*n;++i)
        sus = (sus*i)%M;
    for(int i=2;i<=n;++i)
        jos = (jos*i)%M;
    g<< (sus * putere(jos,M-2))%M;
    return 0;
}