結果

問題 No.258 回転寿司(2)
ユーザー lam6er
提出日時 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
権限があれば一括ダウンロードができます

ソースコード

diff #

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)))
0