結果

問題 No.2572 Midori on the grid
ユーザー hirayuu_ychirayuu_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
権限があれば一括ダウンロードができます

ソースコード

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