61642023-11-04 01:17:25horvathabelJáték (50 pont)cpp17Hibás válasz 0/50179ms5084 KiB
#include <bits/stdc++.h>
using namespace std;
using ll=long long;
ll mod=1000000007;

vector<int> fact(100001,0);
ll pw(ll a, ll b){
    ll ret=1;
    while (b>0){
        if (b%2==1){
            ret*=a;
            ret=ret%mod;
        }
        a*=a;
        a=a%mod;
        b/=2;
    }
    return ret;
}
ll choose(int n,int k){
    if (n==k) return 1;
    ll ret=fact[n];
    ret*=pw(fact[k],mod-2);
    ret%=mod;
    ret*=pw(fact[n-k],mod-2);
    ret=ret%mod;
    return ret;
}
int main()
{

    fact[1]=1;
    for (int i=2;i<=100001;i++){
        fact[i]=(fact[i-1]*i);
        fact[i]%=mod;
    }
    int b,c;
    cin>>b>>c;
    int ans=1;
    for (int i=1; i<=b;i++){
        ans+=choose(c-b+i,c-b);
        ans%=mod;
        ans-=choose(c-b+i-1,c-b);
        ans%=mod;
    }
    cout<<ans-1;

}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base0/50
1Elfogadva0/04ms2516 KiB
2Hibás válasz0/010ms2744 KiB
3Hibás válasz0/24ms2960 KiB
4Hibás válasz0/34ms3288 KiB
5Hibás válasz0/36ms3560 KiB
6Hibás válasz0/37ms3616 KiB
7Hibás válasz0/38ms3596 KiB
8Hibás válasz0/39ms3580 KiB
9Hibás válasz0/38ms3808 KiB
10Hibás válasz0/38ms3868 KiB
11Hibás válasz0/317ms4092 KiB
12Hibás válasz0/339ms4196 KiB
13Hibás válasz0/363ms4412 KiB
14Hibás válasz0/357ms4536 KiB
15Hibás válasz0/363ms4828 KiB
16Időlimit túllépés0/3165ms3724 KiB
17Hibás válasz0/357ms4848 KiB
18Időlimit túllépés0/3179ms3936 KiB
19Időlimit túllépés0/3152ms5084 KiB