Pagini recente » Cod sursa (job #3216424) | Cod sursa (job #244112) | Cod sursa (job #1661090) | Cod sursa (job #302017) | Cod sursa (job #1324060)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f ("sandokan.in");
ofstream g ("sandokan.out");
const int MOD = 2000003;
const int NMAX = 5000 + 1;
int n, k;
long long factorial(long long x) {
long long rez = 1;
for (long long i = 2; i <= x; i++)
rez = (rez * i) % MOD;
return rez;
}
long long putere(int x, int p) {
if (p == 0) return 1;
long long y = putere(x, p / 2);
y = (y * y) % MOD;
if (p % 2 == 0) return y;
return (y * x) % MOD;
}
inline long long invers_modular(long long x) {
return putere(x, MOD - 2);
}
long long combinari(long long n, long long k) {
long long sol;
sol = (factorial(n) * invers_modular(factorial(k))) % MOD;
sol = (sol * invers_modular(factorial(n - k))) % MOD;
return sol;
}
int main() {
f >> n >> k;
n--; k--;
k = n % k;
g << combinari(n, k) << '\n';
return 0;
}