Cod sursa(job #3324943)

Utilizator Octavian09Dore Octaviam Octavian09 Data 24 noiembrie 2025 11:07:06
Problema Dirichlet Scor 88
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <fstream>

using namespace std;
const int MOD=9999991;

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

long long inv[2000005],fact[2000005];
int N;

long long InversModular(long long a,long long b){
    long long val=1;
    while(b>0){
        if(b&1) val=val*a%MOD;
        a=a*a%MOD;
        b>>=1;
    }
    return val;
}

int main()
{
    f >> N;
    //
    fact[0]=1;
    for(int i=1;i<=2*N;i++)
        fact[i]=fact[i-1]*i%MOD;
    //
    inv[2*N]=InversModular(fact[2*N],MOD-2);
    for(int i=2*N-1;i>=0;i--)
        inv[i]=inv[i+1]*(i+1)%MOD;
    //
    g << fact[2*N]*inv[N]%MOD*inv[N]%MOD*InversModular(N+1,MOD-2)%MOD;
    return 0;
}