Cod sursa(job #2617916)

Utilizator RaduNRadu Negovan RaduN Data 23 mai 2020 12:36:44
Problema Dirichlet Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <fstream>
#define mod 9999991
using namespace std;
ifstream f("dirichlet.in");
ofstream g("dirichlet.out");
long long n;
long long expow(long long a, long long b) {
    long long rez=1;
    while (b) {
        if (b&1){
            rez=(rez*a)%mod;
        }
        a=(a*a)%mod;
        b>>=1;
    }
    return rez;
}
long long invers (long long x) {
    return expow(x, mod-2)%mod;
}
long long fact (long long x) {
    long long rez=1;
    for(long long i=1; i<=x; i++){
        rez=(rez*i)%mod;
    }
    return rez;
}
int main() {
    f>>n;
    long long fact2n=fact(2*n);
    long long factnminus=fact(n-1);
    long long factn=(factnminus*n)%mod;
    long long factn1=(factn*(n+1))%mod;
    long long rez1=(fact2n*invers(factn))%mod;
    rez1=(rez1*invers(factn))%mod;
    long long rez2=(fact2n*invers(factnminus))%mod;
    rez2=(rez2*invers(factn1))%mod;
    g<<(rez1-rez2+mod)%mod;
    return 0;
}