ログインしてください。
提出 #52134565
ソースコード 拡げる
// LUOGU_RID: 154733952
#include <bits/stdc++.h>
using namespace std;
const int P = 998244353;
const int N = 2e7 + 5;
inline int poww(int a, int b) {
int r = 1;
for (; b; b >>= 1, a = 1ll * a * a % P) if (b & 1) r = 1ll * r * a % P;
return r;
}
int n, A, B;
int fac[N], ifac[N];
inline void initFac(void) {
for (int i = fac[0] = 1; i < N; ++i) fac[i] = 1ll * fac[i - 1] * i % P;
ifac[N - 1] = poww(fac[N - 1], P - 2);
for (int i = N - 2; i >= 0; --i) ifac[i] = 1ll * ifac[i + 1] * (i + 1) % P;
}
inline int C(int n, int m) {
if (m < 0 || n < m || n < 0) return 0;
return 1ll * fac[n] * ifac[m] % P * ifac[n - m] % P;
}
inline int F(int a, int b) {
return (C(a + b - 1, a - 1) - C(a + b - 1, b - 1) + P) % P;
}
int main(void) {
initFac();
cin >> n >> B >> A; // A >= B
if (A == 0 && B == 0) return cout << "1\n", 0;
int ans = (A + B == n ? F(A, B) : 0);
for (int k = 0; k <= B; ++k)
// B - k 次 up
ans = (ans + 1ll * F(A, B - k) * C(n - A - (B - k) - 1 + k, k)) % P;
cout << ans << '\n';
return 0;
}
提出情報
| 提出日時 | |
|---|---|
| 問題 | F - Two Pieces |
| ユーザ | james1BadCreeper |
| 言語 | C++ 17 (gcc 12.2) |
| 得点 | 2200 |
| コード長 | 1135 Byte |
| 結果 | AC |
| 実行時間 | 284 ms |
| メモリ | 159924 KiB |
ジャッジ結果
| セット名 | Sample | All | ||||
|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 2200 / 2200 | ||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| Sample | 00-sample-01.txt, 00-sample-02.txt, 00-sample-03.txt, 00-sample-04.txt |
| All | 00-sample-01.txt, 00-sample-02.txt, 00-sample-03.txt, 00-sample-04.txt, 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 01-11.txt, 01-12.txt, 01-13.txt, 01-14.txt, 01-15.txt, 01-16.txt, 01-17.txt, 01-18.txt, 01-19.txt, 01-20.txt, 01-21.txt, 01-22.txt, 01-23.txt, 01-24.txt, 01-25.txt, 01-26.txt, 01-27.txt, 01-28.txt, 01-29.txt, 01-30.txt, 01-31.txt, 01-32.txt, 01-33.txt, 01-34.txt |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| 00-sample-01.txt | AC | 227 ms | 159844 KiB |
| 00-sample-02.txt | AC | 226 ms | 159720 KiB |
| 00-sample-03.txt | AC | 227 ms | 159788 KiB |
| 00-sample-04.txt | AC | 228 ms | 159732 KiB |
| 01-01.txt | AC | 228 ms | 159748 KiB |
| 01-02.txt | AC | 229 ms | 159792 KiB |
| 01-03.txt | AC | 228 ms | 159752 KiB |
| 01-04.txt | AC | 228 ms | 159736 KiB |
| 01-05.txt | AC | 251 ms | 159884 KiB |
| 01-06.txt | AC | 273 ms | 159700 KiB |
| 01-07.txt | AC | 251 ms | 159896 KiB |
| 01-08.txt | AC | 232 ms | 159924 KiB |
| 01-09.txt | AC | 253 ms | 159780 KiB |
| 01-10.txt | AC | 228 ms | 159716 KiB |
| 01-11.txt | AC | 261 ms | 159796 KiB |
| 01-12.txt | AC | 238 ms | 159648 KiB |
| 01-13.txt | AC | 232 ms | 159712 KiB |
| 01-14.txt | AC | 250 ms | 159788 KiB |
| 01-15.txt | AC | 253 ms | 159788 KiB |
| 01-16.txt | AC | 254 ms | 159668 KiB |
| 01-17.txt | AC | 271 ms | 159804 KiB |
| 01-18.txt | AC | 238 ms | 159756 KiB |
| 01-19.txt | AC | 239 ms | 159748 KiB |
| 01-20.txt | AC | 229 ms | 159756 KiB |
| 01-21.txt | AC | 278 ms | 159692 KiB |
| 01-22.txt | AC | 282 ms | 159876 KiB |
| 01-23.txt | AC | 249 ms | 159784 KiB |
| 01-24.txt | AC | 275 ms | 159788 KiB |
| 01-25.txt | AC | 234 ms | 159716 KiB |
| 01-26.txt | AC | 263 ms | 159676 KiB |
| 01-27.txt | AC | 230 ms | 159716 KiB |
| 01-28.txt | AC | 269 ms | 159784 KiB |
| 01-29.txt | AC | 284 ms | 159880 KiB |
| 01-30.txt | AC | 254 ms | 159848 KiB |
| 01-31.txt | AC | 264 ms | 159696 KiB |
| 01-32.txt | AC | 275 ms | 159884 KiB |
| 01-33.txt | AC | 256 ms | 159804 KiB |
| 01-34.txt | AC | 279 ms | 159800 KiB |