結果
問題 | No.2429 Happiest Tabehodai Ways |
ユーザー |
![]() |
提出日時 | 2025-03-20 20:26:51 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 61 ms / 2,000 ms |
コード長 | 928 bytes |
コンパイル時間 | 254 ms |
コンパイル使用メモリ | 82,168 KB |
実行使用メモリ | 65,360 KB |
最終ジャッジ日時 | 2025-03-20 20:28:21 |
合計ジャッジ時間 | 3,521 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 44 |
ソースコード
n, K = map(int, input().split()) C = list(map(int, input().split())) D = list(map(int, input().split())) MOD = 998244353 max_dp = [-1] * (K + 1) max_dp[0] = 0 cnt = [0] * (K + 1) cnt[0] = 1 for s in range(K + 1): if max_dp[s] == -1: continue for i in range(n): ci = C[i] di = D[i] new_s = s + ci if new_s > K: continue new_h = max_dp[s] + di if max_dp[new_s] < new_h: max_dp[new_s] = new_h cnt[new_s] = cnt[s] elif max_dp[new_s] == new_h: cnt[new_s] = (cnt[new_s] + cnt[s]) % MOD max_happiness = 0 total_ways = 0 for s in range(K + 1): if max_dp[s] == -1: continue if max_dp[s] > max_happiness: max_happiness = max_dp[s] total_ways = cnt[s] elif max_dp[s] == max_happiness: total_ways = (total_ways + cnt[s]) % MOD print(max_happiness) print(total_ways % MOD)