Cod sursa(job #3226644)

Utilizator cosmin983Pascale Cosmin cosmin983 Data 22 aprilie 2024 13:43:45
Problema Sandokan Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <fstream>


using namespace std;


ifstream cin("sandokan.in");
ofstream cout("sandokan.out");


const int MOD = 2e6 + 3;


int n, k, answer;


int getFactorial(int n) {
	int factorial = 1;
	for (int index = 2; index <= n; ++index) {
		factorial = ((long long)factorial * index) % MOD;
	}
	return factorial;
}


int fastPower(int a, int b) {
	if (b == 0) {
		return 1;
	}
	if (b % 2 == 1) {
		return ((long long)a * fastPower(a, b - 1)) % MOD;
	}
	int power = fastPower(a, b / 2);
	return ((long long)power * power) % MOD;
}


void read() {
	cin >> n >> k;
}


void solve() {
	k = (n - 1) % (k - 1);
	answer = getFactorial(n - 1);
	answer = ((long long)answer * fastPower(getFactorial(k), MOD - 2)) % MOD;
	answer = ((long long)answer * fastPower(getFactorial(n - 1 - k), MOD - 2)) % MOD;
}


void display() {
	cout << answer;
}


int main() {
	read();
	solve();
	display();
	return 0;
}