Cod sursa(job #2331250)

Utilizator denmirceaBrasoveanu Mircea denmircea Data 29 ianuarie 2019 13:27:12
Problema Dirichlet Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <iostream>
#include <fstream>
#define mod 9999991
using namespace std;
ifstream fin("dirichlet.in");
ofstream fout("dirichlet.out");
long long x,y,n,fact1=1,fact2=1,i;
long long  euclid(long long a,long long  b,long long &x,long long &y){
    if(b==0){
        x=1;
        y=0;
        return a;
    }
    long long x0,y0;
    long long r=euclid(b,a%b,x0,y0);
    x=y0;
    y=x0-y0*(a/b);
    return r;
}
int main()
{
   fin>>n;
   for(i=n+1;i<=2*n;i++)
   {
       fact1*=i;
       fact1%=mod;
   }
   for(i=2;i<=n+1;i++)
   {
     fact2*=i;
     fact2%=mod;
   }
   euclid(fact2,mod,x,y);
   fact2=x;
   fact2%=mod;
   if(fact2<0)
    fact2+=mod;
   fout<<(fact1*fact2)%mod;
}