Cod sursa(job #1012150)
| Utilizator | Data | 18 octombrie 2013 12:39:11 | |
|---|---|---|---|
| Problema | Dirichlet | Scor | 72 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.5 kb |
#include<fstream>
#define M 9999991
using namespace std;
ifstream in("dirichlet.in");
ofstream out("dirichlet.out");
long long r=1,q,n,k;
long long inv(long long a, long long b){
int p=1;
while(b){
if(b&1) p=((p%M)*(a%M))%M;
a=((a%M)*(a%M))%M;
b/=2;
}
return p%M;
}
int main(){
in>>q;
n=2*q; k=q;
for(int i=1;i<k;++i)
r=(((r%M)*((n-i+1)%M))%M * inv(i,M-2)%M)%M;
r=((r%M)*inv(k,M-2)%M)%M;
out<<r<<'\n';
return 0;
}
