結果
問題 | No.2572 Midori on the grid |
ユーザー | hirayuu_yc |
提出日時 | 2023-12-02 16:03:52 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 3,782 ms / 5,000 ms |
コード長 | 692 bytes |
コンパイル時間 | 364 ms |
コンパイル使用メモリ | 81,700 KB |
実行使用メモリ | 239,900 KB |
最終ジャッジ日時 | 2023-12-02 16:04:26 |
合計ジャッジ時間 | 31,034 ms |
ジャッジサーバーID (参考情報) |
judge15 / judge12 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 3,782 ms
239,900 KB |
testcase_01 | AC | 2,683 ms
238,376 KB |
testcase_02 | AC | 3,344 ms
238,360 KB |
testcase_03 | AC | 3,273 ms
238,360 KB |
testcase_04 | AC | 2,539 ms
238,360 KB |
testcase_05 | AC | 3,363 ms
238,360 KB |
testcase_06 | AC | 1,794 ms
236,208 KB |
testcase_07 | AC | 1,864 ms
236,208 KB |
testcase_08 | AC | 1,735 ms
236,208 KB |
ソースコード
fact=[] rev=[] def comb_init(N=1000000,MOD=998244353): global fact,rev fact=[1] rev=[1] for i in range(N): fact.append((fact[-1]*(i+1))%MOD) rev.append((rev[-1]*pow(i+1,MOD-2,MOD))%MOD) def comb(n,r,MOD=998244353): if n<r: return 0 return (fact[n]*rev[r]*rev[n-r])%MOD H,W,Q=map(int,input().split()) comb_init(2000500,998244353) for i in range(Q): t=int(input()) aft=0 if t<0: t=-t H,W=W,H aft=1 if H+t<W: if aft==1: H,W=W,H print(0) continue if t>W: print(comb(H+W,W)) else: print((comb(H+W,W)-comb(H+W,W-t))%998244353) if aft==1: H,W=W,H