Cod sursa(job #2331773)

Utilizator maria15Maria Dinca maria15 Data 29 ianuarie 2019 21:57:14
Problema Dirichlet Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <fstream>
#define mod 9999991

using namespace std;

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

long long n, i, sol1 = 1, sol2 = 1, x, y;

void euclid(long long a, long long b, long long &x, long long &y){
    if(b == 0){
        x = 1;
        y = 0;
        return;
    }
    long long x0, y0;
    euclid(b, a % b, x0, y0);
    x = y0;
    y = x0 - (a/b)*y0;
}

int main(){
    fin>>n;
    for(i=n+2;i<=2*n;i++)
        sol1 = (sol1*i) % mod;
    for(i=2;i<=n;i++)
        sol2 = (sol2*i) % mod;
    euclid(sol2, mod, x, y);
    if(x < mod)
        x += mod;
    fout<<(sol1*x) % mod;
    return 0;
}