結果
問題 |
No.3289 Make More Happy Connection
|
ユーザー |
![]() |
提出日時 | 2025-10-03 22:00:18 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 518 ms / 2,000 ms |
コード長 | 709 bytes |
コンパイル時間 | 397 ms |
コンパイル使用メモリ | 82,228 KB |
実行使用メモリ | 154,552 KB |
最終ジャッジ日時 | 2025-10-03 22:00:34 |
合計ジャッジ時間 | 8,707 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 24 |
ソースコード
n = int(input()) inf = float("INF") dp = [[-inf, -inf] for _ in range(n)] XY = [tuple(map(int, input().split())) for _ in range(n)] if XY[0][0] == XY[0][1]: dp[0][0] = XY[0][0] else: dp[0] = [0, 0] for i in range(1, n): if XY[i][0] == XY[i][1]: dp[i][0] = max(dp[i-1]) + XY[i][0] for j in range(2): if XY[i][0] == XY[i-1][j]: dp[i][0] = max(dp[i][0], dp[i-1][j] + XY[i][0] + XY[i][0]) else: for j in range(2): for k in range(2): dp[i][k] = max(dp[i][k], dp[i-1][0], dp[i-1][1]) if XY[i-1][j] == XY[i][k]: dp[i][k^1] = max(dp[i][k^1], dp[i-1][j] + XY[i][k]) print(max(dp[-1]))