226762026-01-15 15:23:36algoproJáték (50 pont)cpp17Elfogadva 50/507ms2068 KiB
// UUID: 9a634404-acd0-46e3-a176-289ca2a34c30
#include <bits/stdc++.h>
using namespace std;
using ll = long long;

ll MOD = 1e9 + 7;
vector<ll> fakt(2e5 + 1);

ll fastPow(ll a, ll b, ll mod = MOD){
	if (b == 0) return 1;
	if (b == 1) return a;
	ll res = fastPow(a, b / 2);
	if (b & 1) return res * res % mod * a % mod;
	return res * res % mod;
}

ll inv (ll a){
	return fastPow(a, MOD - 2);
}

ll choose (ll n, ll k){
	return fakt[n] * inv(fakt[k]) % MOD * inv(fakt[n - k]) % MOD;
}

int main() {

	ll k, n;
	cin >> k >> n;
	n--, k--;

	fakt[0] = 1;
	for (int i = 1; i <= 2e5; i++){
		fakt[i] = fakt[i - 1] * i % MOD;
	}

	cout << ((choose(2 * n - k, n - k) - choose(2 * n - k, n - k - 1)) % MOD + MOD) % MOD << endl;

}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base50/50
1Elfogadva0/07ms1844 KiB
2Elfogadva0/06ms1844 KiB
3Elfogadva2/27ms2028 KiB
4Elfogadva3/36ms1844 KiB
5Elfogadva3/36ms1976 KiB
6Elfogadva3/37ms1844 KiB
7Elfogadva3/36ms1980 KiB
8Elfogadva3/36ms1976 KiB
9Elfogadva3/37ms1848 KiB
10Elfogadva3/37ms2056 KiB
11Elfogadva3/36ms1976 KiB
12Elfogadva3/37ms2068 KiB
13Elfogadva3/37ms1980 KiB
14Elfogadva3/37ms1844 KiB
15Elfogadva3/37ms1976 KiB
16Elfogadva3/37ms1844 KiB
17Elfogadva3/37ms1944 KiB
18Elfogadva3/36ms1984 KiB
19Elfogadva3/36ms1852 KiB