Cod sursa(job #2909411)

Utilizator simion_bogdanSimion Bogdan-Dumitru simion_bogdan Data 13 iunie 2022 13:57:58
Problema Sandokan Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.62 kb
#include<fstream>

using namespace std;

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

#define mod 2000003

int prior[5005], actual[5005];

int sandokan(int n, int k) {
	actual[0] = 1;
	actual[1] = 1;
	int aux = n, i, j;
	for (i = 1; i <= n; i++) {
		for (j = 1; j <= k; j++) {
			prior[j] = actual[j - 1] + actual[j];
		}
		while (j > 0) {
			j--;
			actual[j] = prior[j] % mod;
		}
	}
	while (aux > k) {
		aux = aux - k + 1;
	}
	return actual[aux - 1];
}

int main() {
	int n, k;
	cin >> n >> k;
	if (k >= n) {
		cout << 1;
	}
	else {
		cout << sandokan(n, k);
	}
	return 0;

}