217502026-01-13 19:04:26algoproJáték (50 pont)cpp17Accepted 50/5059ms3564 KiB
// UUID: 5fa63421-7c13-46cb-a9ca-19c300545877
#include <bits/stdc++.h>
using namespace std;
#define ll long long
const ll M=1e9+7;

ll binpow(ll a, ll b) {
    if (b==0)return 1LL;
    ll c=binpow(a, b/2);
    if (b%2==1)return (((c*c)%M)*a)%M;
    else return (c*c)%M;
}

int main() {
	ll b, c;cin>>b>>c;
    vector<ll>fact(2*c+2,1),inv(2*c+2,1);
    for(int i=1;i<=2*c+1;i++){
        fact[i]=fact[i-1]*i;fact[i]%=M;
        inv[i]=binpow(fact[i],M-2);
    }
    cout<<((((fact[2*c-b-1]*inv[c-1])%M)*inv[c-b])%M-(((fact[2*c-b-1]*inv[c])%M)*inv[c-b-1])%M+M)%M;
}
SubtaskSumTestVerdictTimeMemory
base50/50
1Accepted0/01ms316 KiB
2Accepted0/02ms316 KiB
3Accepted2/21ms316 KiB
4Accepted3/31ms316 KiB
5Accepted3/31ms316 KiB
6Accepted3/31ms316 KiB
7Accepted3/32ms316 KiB
8Accepted3/32ms508 KiB
9Accepted3/32ms316 KiB
10Accepted3/32ms316 KiB
11Accepted3/34ms564 KiB
12Accepted3/38ms804 KiB
13Accepted3/313ms820 KiB
14Accepted3/354ms3144 KiB
15Accepted3/327ms1744 KiB
16Accepted3/359ms3432 KiB
17Accepted3/339ms2100 KiB
18Accepted3/357ms3328 KiB
19Accepted3/354ms3564 KiB