Cod sursa(job #989912)

Utilizator ctlin04UAIC.VlasCatalin ctlin04 Data 26 august 2013 20:49:04
Problema Dirichlet Scor 88
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include<fstream>
using namespace std;
const int mod=9999991;
int n;

long long pow(long long n, int p) {
     long long rez=1;
     while (p>0) 
      if (p%2==0) { n=(n*n)%mod; p/=2; }
       else { rez=(rez*n)%mod; --p; }
      return(rez%mod);
}

int c(int n, int k) {
    long long p2=k,p3=n-k,fact=1,p1;
     for (int i=1; i<=n; ++i){
          if (i-1==p2) p2=fact;
           if (i-1==p3) p3=fact;
            fact=(fact*i)%mod;
           }
       p1=(p2*p3)%mod;
     return((fact*pow(p1,mod-2))%mod);
}

int main(void) {
    ifstream fin("dirichlet.in");
    ofstream fout("dirichlet.out");
    fin>>n;
     long long sol=(c(2*n-1,n)-c(2*n-1,n+1)+mod)%mod;
   fout<<sol;
 return(0);
}