Cod sursa(job #2339315)

Utilizator Andrei-27Arhire Andrei Andrei-27 Data 8 februarie 2019 18:29:08
Problema Sandokan Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <bits/stdc++.h>
#define  MOD 2000003
using namespace std;
ifstream in ("sandokan.in") ;
ofstream out ("sandokan.out") ;
const int NR = 5002 ;
int fact [ NR ] ;
int64_t lgpow ( int64_t x , int64_t y )
{
    if ( y == 1 )   return x ;
    if ( y % 2 )    return 1LL * x *  lgpow ( ( 1LL * x * x ) % MOD , y >> 1 ) % MOD ;
    else            return lgpow ( ( 1LL * x * x ) % MOD , y >> 1 ) ;
}
int main ()
{
  int64_t n2 , n , k , nc = 1 , nk = 1 ; in >> n >> k ;
  n2 = n ;
  while ( n >= k )  n -= k - 1 ;
  k = n - 1 ;
  n = n2 - 1 ;
  for ( int i = n - k + 1 ; i <= n ; ++ i )    nc = nc * i % MOD ;
  for ( int i = 2 ; i <= k ; ++ i ) nk = nk * i % MOD ;
   out << nc * lgpow( nk , MOD - 2 ) % MOD ;
      return 0 ;
}