Cod sursa(job #1999102)
Utilizator | Data | 10 iulie 2017 12:21:51 | |
---|---|---|---|
Problema | Dirichlet | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.52 kb |
#include <fstream>
using namespace std;
long long n,i,p1,p2,t,m,q;
int main()
{
ifstream f("dirichlet.in");
ofstream g("dirichlet.out");
f>>n;
t=9999991;
p1=n+1;
p2=1;
for(i=1; i<=n; i++)
{
p1*=i;
p2*=(n+i);
p1%=t;
p2%=t;
}
m=t-2;
q=p1;
p1=1;
while(m)
{
if(m%2) p1*=q;
q*=q;
m/=2;
p1%=t;
q%=t;
}
g<<(p1*p2)%t<<'\n';
f.close(); g.close();
return 0;
}