Pagini recente » Cod sursa (job #3166117) | Cod sursa (job #321098) | Cod sursa (job #1285572) | Cod sursa (job #2920852) | Cod sursa (job #3251247)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("sandokan.in");
ofstream fout("sandokan.out");
const long long mod = 2000003;
long long n, k;
static inline long long Prod(long long a, long long b) {
return (a * b) % mod;
}
static inline long long Put(long long a = 2, long long n = 2) {
long long p = 1;
while(n) {
if(n & 1) p = Prod(p, a);
a = Prod(a, a);
n >>= 1;
}
return p;
}
static inline long long Inv(long long a) {
return Put(a, mod - 2);
}
static inline long long Comb(long long n, long long k) {
long long nr = 1;
long long nm = 1;
for(int i = 1; i <= k; i++) {
nr = Prod(nr, i);
if(i <= k) nm = Prod(nm, i);
if(i <= n - k) nm = Prod(nm, i);
}
return Prod(nr, Inv(nm));
}
int main() {
fin >> n >> k;
n--;
k--;
fout << Comb(n, n % k);
return 0;
}