Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- #define ll long long
- using namespace std;
- const ll mod = 1e9 + 7;
- ll mul(ll a, ll b){
- if(!(b ^ 0ll))
- return 0;
- ll t = mul(a, b >> 1) % mod;
- if(b & 1ll)
- return ( (t << 1) % mod + (a % mod) ) % mod;
- return (t << 1) % mod;
- }
- ll reverse_modulo(ll v){
- ll a = v, b = mod, r, q;
- ll xa = 1, xb = 0, xr;
- while(b != 0){
- q = a / b;
- r = a - q * b;
- xr = xa - q * xb;
- a = b;
- xa = xb;
- b = r;
- xb = xr;
- }
- return (xa + mod) % mod;
- }
- int main()
- {
- ll n, k;
- cin >> n >> k;
- if(k > ((n + 1) >> 1))
- cout << '0';
- else{
- ll ans = 1, gt = 1;
- for(ll i = 0; i < k; ++i){
- ans = mul(ans, n - ((k - 1ll) << 1) + i);
- gt = gt * (i + 1ll) % mod;
- }
- ans = mul(ans, reverse_modulo(gt));
- cout << ans;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement