結果
| 問題 |
No.2932 えっえっ嘘嘘嘘待って待って待って???えマジで?ほんとに?マジでやばすぎなんだけど?えっおっほんとにこんなにDPしちゃっていいんですかい???マジでやばすぎなんだけど???
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 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 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 12 |
ソースコード
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()