結果

問題 No.258 回転寿司(2)
ユーザー 👑 rin204rin204
提出日時 2022-07-05 16:02:11
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 54 ms / 2,000 ms
コード長 514 bytes
コンパイル時間 446 ms
コンパイル使用メモリ 82,304 KB
実行使用メモリ 53,632 KB
最終ジャッジ日時 2024-12-15 22:36:46
合計ジャッジ時間 7,628 ms
ジャッジサーバーID
(参考情報)
judge1 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 4
other AC * 67
権限があれば一括ダウンロードができます

ソースコード

diff #

n = int(input())
V = list(map(int, input().split()))
if n == 1:
    print(V[0])
    print(1)
    exit()
dp = [0] * n
dp[0] = V[0]
dp[1] = V[1]
bef = [-1] * n
for i in range(2, n):
    dp[i] = dp[i - 2] + V[i]
    bef[i] = i - 2
    if i >= 3 and dp[i - 3] + V[i] > dp[i]:
        dp[i] = dp[i - 3] + V[i]
        bef[i] = i - 3

if dp[n - 1] > dp[n - 2]:
    print(dp[n - 1])
    x = n - 1
else:
    print(dp[n - 2])
    x = n - 2
    
ans = []
while x != -1:
    ans.append(x + 1)
    x = bef[x]
print(*ans[::-1])
0