Cod sursa(job #2941449)

Utilizator rastervcrastervc rastervc Data 17 noiembrie 2022 19:24:01
Problema Sandokan Scor 100
Compilator c-64 Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <stdio.h>
#include <stdlib.h>

#define MOD 2000003

static inline int fastpow(int x, int n) {
	int res = 1;
	for (; n; n >>= 1) {
		if (n & 1) res = (1LL * res * x) % MOD;
		x = (1LL * x * x) % MOD;
	}
	return res;
}

static inline int choose(int n, int k) {
	long long res = 1, fact = 1;
	for (int i = n; i > n - k; i--) {
		res = (res * i) % MOD;
		fact = (fact * (i - n + k)) % MOD;
	}

	return (int)((res * fastpow(fact, MOD - 2)) % MOD);
}

int N, K, P;

int main(void) {
	freopen("sandokan.in", "r", stdin);
	freopen("sandokan.out", "w", stdout);

	scanf("%d%d", &N, &K);
	P = (N - 1) % (K - 1) + 1;
	printf("%d", choose(N - 1, P - 1));

	fclose(stdout);
	fclose(stdin);
	return 0;
}