結果

問題 No.2932 えっえっ嘘嘘嘘待って待って待って???えマジで?ほんとに?マジでやばすぎなんだけど?えっおっほんとにこんなにDPしちゃっていいんですかい???マジでやばすぎなんだけど???
ユーザー ThetaTheta
提出日時 2024-11-20 14:35:06
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 43 ms / 2,000 ms
コード長 932 bytes
コンパイル時間 183 ms
コンパイル使用メモリ 82,368 KB
実行使用メモリ 60,348 KB
最終ジャッジ日時 2024-11-20 14:35:08
合計ジャッジ時間 1,443 ms
ジャッジサーバーID
(参考情報)
judge3 / judge4
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 37 ms
52,744 KB
testcase_01 AC 36 ms
51,824 KB
testcase_02 AC 40 ms
59,060 KB
testcase_03 AC 38 ms
52,484 KB
testcase_04 AC 36 ms
52,208 KB
testcase_05 AC 37 ms
52,392 KB
testcase_06 AC 37 ms
52,392 KB
testcase_07 AC 41 ms
59,720 KB
testcase_08 AC 38 ms
53,144 KB
testcase_09 AC 42 ms
59,080 KB
testcase_10 AC 43 ms
58,580 KB
testcase_11 AC 36 ms
53,144 KB
testcase_12 AC 40 ms
52,956 KB
testcase_13 AC 41 ms
59,148 KB
testcase_14 AC 43 ms
60,348 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

def main():
    MOD = 998244353
    H, W, M = map(int, input().split())
    if H + W - 1 > M:
        print(0)
        return
    pattern = pow(M, H*W - (H+W-1), MOD)
    route_comb_up = 1
    for n in range(M-H-W+2, M+1):
        route_comb_up *= n
        route_comb_up %= MOD
    route_comb_down = 1
    for n in range(1, H+W):
        route_comb_down *= n
        route_comb_down %= MOD
    route_comb_down_inv = pow(route_comb_down, MOD-2, MOD)
    pattern *= route_comb_up
    pattern %= MOD
    pattern *= route_comb_down_inv
    pattern %= MOD

    comb_up = 1
    for n in range(W, H+W-1):
        comb_up *= n
        comb_up %= MOD
    comb_down = 1
    for n in range(1, H):
        comb_down *= n
        comb_down %= MOD

    comb_down_inv = pow(comb_down, MOD-2, MOD)
    pattern *= comb_up
    pattern %= MOD
    pattern *= comb_down_inv
    pattern %= MOD
    print(pattern)


if __name__ == "__main__":
    main()
0