提出 #64180799
ソースコード 拡げる
#include <bits/stdc++.h>
using namespace std;
constexpr int mod = 998244353;
int Add(int x, int y){ return (x + y) >= mod ? (x + y - mod) : (x + y); }
int Sub(int x, int y){ return (x - y) < 0 ? (x - y + mod) : (x - y); }
int Mul(int x, int y){ return 1ll * x * y % mod; }
const int N = 1e6 + 5;
int n, m, L1, R1, L2, R2, fact[N << 1], inv[N << 1];
int binom(int n, int m){ return n < m ? 0 : Mul(fact[n], Mul(inv[m], inv[n - m])); }
int F(int n, int m){ return Sub(binom(n + m + 2, n + 1), 1); }
int G(int n, int m){ return Sub(binom(n + m + 4, n + 2), Add(Mul(n + 2, m + 2), 1)); }
signed main(){
ios::sync_with_stdio(false);
cin.tie(0), cout.tie(0);
cin >> n >> m >> L1 >> R1 >> L2 >> R2;
fact[0] = inv[0] = fact[1] = inv[1] = 1;
for(int i=2;i<=(n+m+4);i++){
fact[i] = Mul(fact[i - 1], i);
inv[i] = Mul(inv[mod % i], mod - mod / i);
}
for(int i=1;i<=(n+m+4);i++) inv[i] = Mul(inv[i], inv[i - 1]);
int ans = G(n, m);
ans = Sub(ans, G(R1 - L1, R2 - L2));
for(int i=L1;i<=R1;i++) ans = Sub(ans, Mul(F(i, L2 - 1), F(n - i, m - L2)));
for(int i=L2;i<=R2;i++) ans = Sub(ans, Mul(F(L1 - 1, i), F(n - L1, m - i)));
for(int i=L1;i<=R1;i++) ans = Sub(ans, Mul(F(n - i, m - R2 - 1), F(i - L1, R2 - L2)));
for(int i=L2;i<=R2;i++) ans = Sub(ans, Mul(F(n - R1 - 1, m - i), F(R1 - L1, i - L2)));
cout << ans << '\n';
return 0;
}
// Written by xiezheyuan
提出情報
| 提出日時 | |
|---|---|
| 問題 | E - Snuke's Kyoto Trip |
| ユーザ | xiezheyuan |
| 言語 | C++ 20 (gcc 12.2) |
| 得点 | 800 |
| コード長 | 1424 Byte |
| 結果 | AC |
| 実行時間 | 66 ms |
| メモリ | 19268 KiB |
ジャッジ結果
| セット名 | Sample | All | ||||
|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 800 / 800 | ||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| Sample | 00-sample-001.txt, 00-sample-002.txt, 00-sample-003.txt |
| All | 00-sample-001.txt, 00-sample-002.txt, 00-sample-003.txt, 01-random-001.txt, 01-random-002.txt, 01-random-003.txt, 01-random-004.txt, 01-random-005.txt, 01-random-006.txt, 01-random-007.txt, 01-random-008.txt, 01-random-009.txt, 01-random-010.txt, 01-random-011.txt, 01-random-012.txt, 01-random-013.txt, 01-random-014.txt, 01-random-015.txt, 02-large-001.txt, 02-large-002.txt, 02-large-003.txt, 02-large-004.txt, 02-large-005.txt, 02-large-006.txt, 02-large-007.txt, 02-large-008.txt, 02-large-009.txt, 02-large-010.txt, 02-large-011.txt, 02-large-012.txt, 02-large-013.txt, 02-large-014.txt, 02-large-015.txt, 03-small-001.txt, 03-small-002.txt, 03-small-003.txt, 03-small-004.txt, 03-small-005.txt, 03-small-006.txt, 03-small-007.txt, 03-small-008.txt, 03-small-009.txt, 03-small-010.txt, 03-small-011.txt, 03-small-012.txt, 03-small-013.txt, 03-small-014.txt, 03-small-015.txt, 04-corner-001.txt, 04-corner-002.txt, 04-corner-003.txt, 04-corner-004.txt, 04-corner-005.txt, 04-corner-006.txt, 04-corner-007.txt, 04-corner-008.txt, 04-corner-009.txt, 04-corner-010.txt, 04-corner-011.txt, 04-corner-012.txt, 04-corner-013.txt, 04-corner-014.txt, 04-corner-015.txt, 05-hand-001.txt, 05-hand-002.txt |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| 00-sample-001.txt | AC | 1 ms | 3492 KiB |
| 00-sample-002.txt | AC | 1 ms | 3536 KiB |
| 00-sample-003.txt | AC | 1 ms | 3448 KiB |
| 01-random-001.txt | AC | 22 ms | 11632 KiB |
| 01-random-002.txt | AC | 6 ms | 5736 KiB |
| 01-random-003.txt | AC | 13 ms | 8780 KiB |
| 01-random-004.txt | AC | 24 ms | 11296 KiB |
| 01-random-005.txt | AC | 11 ms | 7004 KiB |
| 01-random-006.txt | AC | 15 ms | 9132 KiB |
| 01-random-007.txt | AC | 14 ms | 10204 KiB |
| 01-random-008.txt | AC | 16 ms | 11272 KiB |
| 01-random-009.txt | AC | 13 ms | 8584 KiB |
| 01-random-010.txt | AC | 23 ms | 14304 KiB |
| 01-random-011.txt | AC | 14 ms | 10160 KiB |
| 01-random-012.txt | AC | 21 ms | 10144 KiB |
| 01-random-013.txt | AC | 19 ms | 12420 KiB |
| 01-random-014.txt | AC | 8 ms | 7460 KiB |
| 01-random-015.txt | AC | 28 ms | 10868 KiB |
| 02-large-001.txt | AC | 28 ms | 19180 KiB |
| 02-large-002.txt | AC | 43 ms | 19012 KiB |
| 02-large-003.txt | AC | 50 ms | 18988 KiB |
| 02-large-004.txt | AC | 33 ms | 19008 KiB |
| 02-large-005.txt | AC | 37 ms | 19212 KiB |
| 02-large-006.txt | AC | 42 ms | 18948 KiB |
| 02-large-007.txt | AC | 35 ms | 18980 KiB |
| 02-large-008.txt | AC | 27 ms | 19028 KiB |
| 02-large-009.txt | AC | 34 ms | 19028 KiB |
| 02-large-010.txt | AC | 38 ms | 19136 KiB |
| 02-large-011.txt | AC | 54 ms | 19120 KiB |
| 02-large-012.txt | AC | 31 ms | 18988 KiB |
| 02-large-013.txt | AC | 38 ms | 18972 KiB |
| 02-large-014.txt | AC | 35 ms | 19120 KiB |
| 02-large-015.txt | AC | 47 ms | 19092 KiB |
| 03-small-001.txt | AC | 1 ms | 3532 KiB |
| 03-small-002.txt | AC | 1 ms | 3476 KiB |
| 03-small-003.txt | AC | 1 ms | 3412 KiB |
| 03-small-004.txt | AC | 1 ms | 3532 KiB |
| 03-small-005.txt | AC | 1 ms | 3404 KiB |
| 03-small-006.txt | AC | 1 ms | 3656 KiB |
| 03-small-007.txt | AC | 1 ms | 3428 KiB |
| 03-small-008.txt | AC | 1 ms | 3536 KiB |
| 03-small-009.txt | AC | 1 ms | 3428 KiB |
| 03-small-010.txt | AC | 1 ms | 3528 KiB |
| 03-small-011.txt | AC | 1 ms | 3460 KiB |
| 03-small-012.txt | AC | 1 ms | 3408 KiB |
| 03-small-013.txt | AC | 1 ms | 3488 KiB |
| 03-small-014.txt | AC | 1 ms | 3536 KiB |
| 03-small-015.txt | AC | 1 ms | 3656 KiB |
| 04-corner-001.txt | AC | 32 ms | 15828 KiB |
| 04-corner-002.txt | AC | 15 ms | 10508 KiB |
| 04-corner-003.txt | AC | 34 ms | 15036 KiB |
| 04-corner-004.txt | AC | 4 ms | 4436 KiB |
| 04-corner-005.txt | AC | 22 ms | 10384 KiB |
| 04-corner-006.txt | AC | 16 ms | 8312 KiB |
| 04-corner-007.txt | AC | 11 ms | 6920 KiB |
| 04-corner-008.txt | AC | 4 ms | 4364 KiB |
| 04-corner-009.txt | AC | 15 ms | 9996 KiB |
| 04-corner-010.txt | AC | 12 ms | 7460 KiB |
| 04-corner-011.txt | AC | 14 ms | 9384 KiB |
| 04-corner-012.txt | AC | 40 ms | 15640 KiB |
| 04-corner-013.txt | AC | 11 ms | 7036 KiB |
| 04-corner-014.txt | AC | 31 ms | 11860 KiB |
| 04-corner-015.txt | AC | 23 ms | 11808 KiB |
| 05-hand-001.txt | AC | 66 ms | 19148 KiB |
| 05-hand-002.txt | AC | 46 ms | 19268 KiB |