Cod sursa(job #992123)

Utilizator primulDarie Sergiu primul Data 1 septembrie 2013 08:31:20
Problema Dirichlet Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <fstream>
#define X 9999991
using namespace std;
ifstream f("dirichlet.in");
ofstream g("dirichlet.out");
 
int n,numitor,numarator;
long long sol;
 
int Pow(int a,int m)
{
    int r;
    for(r=1; m>0 ; m>>=1)
    {
        if(m&1) r=(1LL*r*a) % X;
        a=(1LL*a*a) % X;
    }
    return r;
}
inline int InversModular(int n)
{
    return Pow(n,X-2);
}
 
 
int main()
{
    f>>n;
    numitor=numarator=1;
    for(int i=2;i<=n;i++)
    {
        numarator=(1LL*numarator*(n+i)) % X;
        numitor=(1LL*numitor*(i)) % X;
    }
    sol=(1LL*numarator*InversModular(numitor)) % X;
    g<<sol<<'\n';
    f.close();g.close();
    return 0;
}