Cod sursa(job #2280057)

Utilizator nicholascantarNicholas David Cantar Gogitidze nicholascantar Data 10 noiembrie 2018 11:10:03
Problema Dirichlet Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <fstream>
#define MOD 9999991
using namespace std;
long long putere (long long x, long long n)
{
    long long a;
    if(n==0) return 1;
    else if(n==1) return x;
    a=putere(x,n/2);
    if(n%2==0) return (a*a)%MOD;
    else return (((x*a)%MOD)*a)%MOD;
}
long long combinari(long long n, long long k)
{
    long long r=1, t=1,i;
    for(i=2;i<=n;i++)
    {
        r=(r*i)%MOD;
        if(i<=k) t=(t*i)%MOD;
        if(i<=n-k) t=(t*i)%MOD;
    }
    t=(t*(k+1))%MOD;
    return (r*putere(t,MOD-2))%MOD;
}
int n;
int main()
{
    ifstream fin ("dirichlet.in");
    ofstream fout ("dirichlet.out");
    fin>>n;
    fout<<combinari(2*n,n)%MOD;
    return 0;
}