Cod sursa(job #2280095)

Utilizator mareadevarIonescu Andrei mareadevar Data 10 noiembrie 2018 11:23:52
Problema Dirichlet Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <bits/stdc++.h>
#define M 9999991
#define LMAX 202
using namespace std;
ifstream f("dirichlet.in");
ofstream g("dirichlet.out");
int T , x , n , m , S[LMAX][LMAX] ,i, type , s[LMAX][LMAX];
long long putere(long long x, long long nn)
{
    long long a;
    if(nn==0) return 1;
    if(nn==1) return x;
    a=putere(x,nn/2);
    if(nn%2==0) return (a*a)%M;
    else return ((x*a)%M*a)%M;
}
long long compinatii(long long n, long long k)
{long long t=1,s=1;
    for(i=1;i<=n;i++)
    {
        s=(s*i)%M;
        if(i<=k) t=(t*i)%M;
        if(i<=n-k) t=(t*i)%M;
    }
    t=t*(k+1)%M;
    t=putere(t,M-2);
    return (s*t)%M;
}
int main()
{
    f>>n;
    g<<compinatii(2*n,n)%M;
    return 0;
}