Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #input
- n = int(input())
- a = list(map(int, input().split()))
- #counting maximum profit
- dp = [0] * n
- dp[0] = a[0]
- dp[2] = dp[0] + a[2]
- for i in range(3, n):
- dp[i] = max(dp[i - 2], dp[i - 3]) + a[i]
- print(dp[n - 1])
- #restoring the answer
- i = n - 1
- ans = []
- while i > 0:
- ans.append(i)
- tmp = dp[i] - a[i]
- if tmp == dp[i - 2]:
- i -= 2
- else:
- i -= 3
- print(*((ans + [0])[::-1]))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement