結果

問題 No.2572 Midori on the grid
ユーザー hirayuu_ychirayuu_yc
提出日時 2023-12-02 16:03:52
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 4,320 ms / 5,000 ms
コード長 692 bytes
コンパイル時間 350 ms
コンパイル使用メモリ 82,176 KB
実行使用メモリ 237,948 KB
最終ジャッジ日時 2024-09-26 19:47:36
合計ジャッジ時間 34,994 ms
ジャッジサーバーID
(参考情報)
judge2 / judge1
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 4,320 ms
237,948 KB
testcase_01 AC 3,147 ms
236,924 KB
testcase_02 AC 3,935 ms
236,804 KB
testcase_03 AC 3,701 ms
236,668 KB
testcase_04 AC 2,942 ms
236,848 KB
testcase_05 AC 3,842 ms
236,784 KB
testcase_06 AC 2,081 ms
234,624 KB
testcase_07 AC 2,064 ms
234,880 KB
testcase_08 AC 2,022 ms
234,752 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

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
0