dp로 어떤 값을 출력할 지가 dp문제의 핵심이다.
즉
1. dp에 최대 수익을 담아야하고
2. max를 사용하며 비교를 한다고 추측할 수 있다.
dp 배열 크기는 N이 최대 15일 이고, T의 최대값은 5이기에 21로 잡았다.
각 일 별 소요 시간과 그 시간이 끝났을 때, 해당 수익을 추가하며 비교했다.
또 전날수익이 오늘의 수익보다 크다면 전날 수익을 덮어씌움(현재날 수익경우의 상담이 덜 이득)
N = int(input())
T, P, dp = [0]*N, [0]*N, [0]*21
for i in range(N):
T[i], P[i] = map(int, input().split())
for j in range(N):
if dp[j] > dp[j+1]:
dp[j+1] = dp[j]
if dp[j+T[j]] < dp[j]+P[j]:
dp[j+T[j]] = dp[j]+P[j]
print(dp[N])