240572026-02-03 18:37:35abcdJáték (50 pont)cpp17Elfogadva 50/503ms1588 KiB
#include <bits/stdc++.h>
using namespace std;
using ll=long long;

const ll M=1e9+7;

ll inv(ll n){
    ll res=1,mm=M-2;
    while(mm){
        if(mm&1)res=res*n%M;
        n=n*n%M;
        mm>>=1;
    }
    return res;
}

int main(){
    ll b,c;cin>>b>>c;
    vector<ll> fact(2*c-b);
    fact[0]=1;
    for(ll i=1;i<2*c-b;i++)fact[i]=fact[i-1]*i%M;
    ll ans=fact[2*c-b-1]*inv(fact[c-1])%M*inv(fact[c-b])%M-fact[2*c-b-1]*inv(fact[c])%M*inv(fact[c-b-1])%M;
    while(ans<0)ans+=M;
    cout<<ans%M<<'\n';
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base50/50
1Elfogadva0/01ms500 KiB
2Elfogadva0/01ms500 KiB
3Elfogadva2/21ms316 KiB
4Elfogadva3/31ms316 KiB
5Elfogadva3/31ms384 KiB
6Elfogadva3/31ms316 KiB
7Elfogadva3/31ms316 KiB
8Elfogadva3/31ms532 KiB
9Elfogadva3/31ms316 KiB
10Elfogadva3/31ms316 KiB
11Elfogadva3/31ms316 KiB
12Elfogadva3/31ms540 KiB
13Elfogadva3/31ms396 KiB
14Elfogadva3/33ms1588 KiB
15Elfogadva3/32ms824 KiB
16Elfogadva3/32ms1368 KiB
17Elfogadva3/32ms1080 KiB
18Elfogadva3/32ms1076 KiB
19Elfogadva3/32ms1332 KiB