Pagini recente » Cod sursa (job #136580) | Cod sursa (job #676746) | Cod sursa (job #471613) | Borderou de evaluare (job #2172737) | Cod sursa (job #3357682)
#include <bits/stdc++.h>
using namespace std;
#define USE_STD_IO 0
#if USE_STD_IO
#define fin cin
#define fout cout
#else
ifstream fin("sandokan.in");
ofstream fout("sandokan.out");
#endif
const long long MOD = 2000003;
int n, k;
static inline long long Put(long long a, long long n) {
long long p = 1;
while(0 < n) {
if(1 & n) p = (p * a) % MOD;
a = (a * a) % MOD;
n >>= 1;
}
return p;
}
static inline long long Comb(long long n, long long k) {
if(n < k) return 1;
long long nr = 1, nm = 1;
for(long long i = 1; i <= k; i++) {
nr = ((n - i + 1) % MOD * nr) % MOD;
nm = (i * nm) % MOD;
}
return nr * Put(nm, MOD - 2) % MOD;
}
int main() {
#if USE_STD_IO
ios_base::sync_with_stdio(false);
#endif // USE_STD_IO
fin.tie(NULL);
fout.tie(NULL);
fin >> n >> k;
fout << Comb(n, (n / k) * k);
return 0;
}