276122026-05-09 15:28:14LazurAndrasJáték (50 pont)cpp17Elfogadva 50/5046ms3628 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long
const int INF = 1e9 + 7;
const int N = 2e5+1;

int fakt[N], inv[N];

int po(int a, int b)
{
    int res = 1;
    while(b)
    {
        if(b & 1) res = res * a % INF;
        a = a * a % INF;
        b >>= 1;
    }
    return res;
}

int alatt(int a, int b)
{
    if(a < b) return 0;
    return (fakt[a] * inv[b] % INF * inv[a-b] % INF);
}

signed main() {
    ios::sync_with_stdio(false);cin.tie(nullptr);
    fakt[0] = inv[0] = 1;
    for(int i = 1; i < N; i++)
    {
        fakt[i] = i * fakt[i-1] % INF;
        inv[i] = po(fakt[i], INF-2);
    }
	int b, c; cin >> b >> c;
    int all = alatt(2*c - b - 1, c - b);
    int rossz = alatt(2*c - b - 1, c - b - 1);
    cout << (all - rossz + INF) % INF;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base50/50
1Elfogadva0/045ms3380 KiB
2Elfogadva0/045ms3380 KiB
3Elfogadva2/245ms3380 KiB
4Elfogadva3/345ms3380 KiB
5Elfogadva3/345ms3380 KiB
6Elfogadva3/345ms3376 KiB
7Elfogadva3/345ms3536 KiB
8Elfogadva3/345ms3392 KiB
9Elfogadva3/346ms3396 KiB
10Elfogadva3/346ms3324 KiB
11Elfogadva3/346ms3628 KiB
12Elfogadva3/346ms3396 KiB
13Elfogadva3/346ms3380 KiB
14Elfogadva3/346ms3548 KiB
15Elfogadva3/346ms3552 KiB
16Elfogadva3/346ms3528 KiB
17Elfogadva3/346ms3396 KiB
18Elfogadva3/346ms3380 KiB
19Elfogadva3/346ms3380 KiB