Cod sursa(job #2279988)

Utilizator danin01Nastase Daniel danin01 Data 10 noiembrie 2018 10:49:49
Problema Dirichlet Scor 32
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <fstream>
#define M 9999991
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;

    }

    t = t*(k+1);

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

    return r;

}

long long n;

int main()
{
    f>>n;
    g<<comb(2*n,n);
    return 0;
}