3703 | 2023. 03. 02 11:59:44 | gortomi | Játék (50 pont) | cpp17 | Accepted 50/50 | 14ms | 13004 KiB |
#include <bits/stdc++.h>
using namespace std;
#define int long long
const int MOD = 1e9 + 7;
signed main()
{
ios::sync_with_stdio(0);
cin.tie(0);
int b, c;
cin >> b >> c;
const int e = 2e5 + 1;
vector<int> inv_num(e);
inv_num[1] = 1;
for(int i = 2; i < e; i++)
{
inv_num[i] = (((MOD + i - 1) / i) * inv_num[i - (MOD % i)]) % MOD;
}
vector<int> inv(e);
inv[0] = 1;
for(int i = 1; i < e; i++) inv[i] = (inv[i - 1] * inv_num[i]) % MOD;
vector<int> fac(e);
fac[0] = 1;
for(int i = 1; i < e; i++) fac[i] = (fac[i - 1] * i) % MOD;
int all = fac[2 * c - b - 1];
all *= inv[c - 1];
all %= MOD;
all *= inv[c - b];
all %= MOD;
int bad = fac[2 * c - b - 1];
bad *= inv[c];
bad %= MOD;
bad *= inv[c - b - 1];
bad %= MOD;
int ans = all - bad;
ans %= MOD;
ans += MOD;
ans %= MOD;
cout << ans;
}
Subtask | Sum | Test | Verdict | Time | Memory | ||
---|---|---|---|---|---|---|---|
base | 50/50 | ||||||
1 | Accepted | 0/0 | 14ms | 11092 KiB | |||
2 | Accepted | 0/0 | 14ms | 11352 KiB | |||
3 | Accepted | 2/2 | 14ms | 11308 KiB | |||
4 | Accepted | 3/3 | 14ms | 11512 KiB | |||
5 | Accepted | 3/3 | 14ms | 11732 KiB | |||
6 | Accepted | 3/3 | 14ms | 11960 KiB | |||
7 | Accepted | 3/3 | 14ms | 12088 KiB | |||
8 | Accepted | 3/3 | 14ms | 12332 KiB | |||
9 | Accepted | 3/3 | 14ms | 12544 KiB | |||
10 | Accepted | 3/3 | 14ms | 12504 KiB | |||
11 | Accepted | 3/3 | 14ms | 12500 KiB | |||
12 | Accepted | 3/3 | 14ms | 12628 KiB | |||
13 | Accepted | 3/3 | 14ms | 12500 KiB | |||
14 | Accepted | 3/3 | 14ms | 12756 KiB | |||
15 | Accepted | 3/3 | 14ms | 12712 KiB | |||
16 | Accepted | 3/3 | 14ms | 12712 KiB | |||
17 | Accepted | 3/3 | 14ms | 12992 KiB | |||
18 | Accepted | 3/3 | 14ms | 13004 KiB | |||
19 | Accepted | 3/3 | 14ms | 12796 KiB |