Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- n = int(input())
- arr = [0]+list(map(int, input().split()))
- n+=1
- mi, ma = map(int, input().split())
- dp = [0]*(n)
- from collections import deque
- stack = deque()
- for i in range(mi, n):
- while stack and stack[-1] < dp[i-mi]:
- stack.pop()
- stack.append(dp[i-mi])
- if i >= ma:
- if stack and stack[0] == dp[i-ma]:
- stack.popleft()
- dp[i] = stack[0]+arr[i]
- print(dp[-1] or -1)
Advertisement
Add Comment
Please, Sign In to add comment