結果
問題 | No.258 回転寿司(2) |
ユーザー |
![]() |
提出日時 | 2025-03-20 20:22:44 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 37 ms / 2,000 ms |
コード長 | 394 bytes |
コンパイル時間 | 147 ms |
コンパイル使用メモリ | 82,304 KB |
実行使用メモリ | 54,584 KB |
最終ジャッジ日時 | 2025-03-20 20:24:49 |
合計ジャッジ時間 | 5,897 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 67 |
ソースコード
n = int(input()) v = list(map(int, input().split())) dp = [0] * (n + 1) if n >= 1: dp[1] = v[0] for i in range(2, n + 1): dp[i] = max(dp[i-1], dp[i-2] + v[i-1]) selected = [] i = n while i > 0: if dp[i] == dp[i-1]: i -= 1 else: selected.append(i-1) i -= 2 selected = sorted([x + 1 for x in selected]) print(dp[n]) print(' '.join(map(str, selected)))