찌든짐니 2022. 5. 3. 13:56
N = int(input())
T = []
P = []
dp = []
for _ in range(N):
    t, p = map(int, input().split())
    T.append(t)
    P.append(p)
    dp.append(p)
    
dp.append(0)

# N=7이면, 6,5,4,3,2,1,0
for i in range(N-1,-1,-1):
    if (T[i]-1)+(i+1) > N:
        # 아무것도 하지 않고, 이전 값(dp[i+1]) 그대로 가져옴
        dp[i] = dp[i+1]
    else:
        # 기존 상담 스케쥴(dp[i+1])과 현재 상담을 새로 가져온 스케쥴(P[i] + dp[i+T[i]]) 중에서 큰 값
        dp[i] = max(dp[i+1], P[i] + dp[i + T[i]])

print(dp[0])