n = int(input())
day = []
val = []
for _ in range(n):
d, v = map(int, input().split())
day.append(d)
val.append(v)
dp = [0 for _ in range(n+1)]
for i in range(n-1, -1, -1):
if day[i] + i > n :
dp[i] = dp[i+1]
else:
dp[i] = max(dp[i+1], val[i] + dp[i + day[i]])
print(dp[0])
'프로그래밍 > 알고리즘' 카테고리의 다른 글
[Python] 백준 21736번 - 헌내기는 친구가 필요해 (0) | 2022.08.10 |
---|---|
[Python] 백준 24445번 - 알고리즘 수업 - 너비 우선 탐색 2 (0) | 2022.07.08 |
[Python] 백준 24444번 - 알고리즘 수업 - 너비 우선 탐색 1 (0) | 2022.07.07 |
[Python] 백준 1388번 - 바닥장식 (0) | 2022.07.07 |
[Python] 백준 11727번 - 2×n 타일링 2 (0) | 2022.07.03 |