Cod sursa(job #3209900)

Utilizator andreea0146Nicula Andreea andreea0146 Data 3 martie 2024 19:54:35
Problema Dirichlet Scor 4
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.78 kb
#include<iostream>
#include<fstream>
using namespace std;
const int MOD=9999991, NMAX=1000000;

ifstream fin("dirichlet.in");
ofstream fout("dirichlet.out");

int fact[2*NMAX+2];
int n;

int inversmod(int a, int b)
{
    int p=1;
    while(b)
    {
        if(b&1)
            p=1LL*p*a%MOD;
        a=1LL*a*a%MOD;
        b>>=1;
    }
    return p;
}


void factorial(int n)
{
    fact[0]=fact[1]=1;
    for(int i=2;i<=n;i++)
        fact[i]=1LL*fact[i-1]*i%MOD;
}

int comb(int n, int k)
{
    int num=fact[n], nm=1LL*fact[n-k]*fact[k]%MOD;
    return 1LL*num*inversmod(nm,MOD-2)%MOD;
}

int main()
{
    int n;
    fin>>n;
    factorial(2*n+1);
    fout<<comb(2*n,n)*inversmod(n+1,MOD-2)%MOD;
    fin.close();
    fout.close();
    return 0;
}