Cod sursa(job #3151983)

Utilizator lensuLensu Alexandru lensu Data 23 septembrie 2023 13:54:04
Problema Sandokan Scor 25
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <fstream>
#define int long long

using namespace std;

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

const int MOD = 2e6 + 3;

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

int n, k;

int C(int k, int n)
{
	long long ans = 1;
	for (int i = 1; i <= n; i++)
		ans = (ans * i) % MOD;

	long long ans1 = 1;

	for (int i = 1; i <= n - k; i++)
		ans1 = (ans1 * i) % MOD;

	for (int i = 1; i <= k; i++)
		ans1 = (ans1 * i) % MOD;

	return (ans * POW(ans1, MOD - 2)) % MOD;
}

signed main()
{
	cin >> n >> k;
	int x;
	for (int i = 1; i <= n; i++)
		cin >> x;

	int rez = C(k - 1, n - 1);
	cout << rez;
}