BOJ - 14501 - 퇴사

Updated:

import sys

def solution():
    N = int(input())
    T = []
    P = []
    dp = [0 for _ in range(N)]

    for _ in range(N):
        t, p = map(int, sys.stdin.readline().split())
        T.append(t)
        P.append(p)

    if T[-1] == 1:
        dp[-1] = P[-1]

    for i in range(N - 2, -1, -1):
        day = i + T[i]

        if day == N:
            dp[i] = max(P[i], dp[i + 1])
        elif day < N:
            dp[i] = max(P[i] + dp[day], dp[i + 1])
        else:
            dp[i] = dp[i + 1]
    print(dp[0])
solution()

https://www.acmicpc.net/problem/14501

Categories:

Updated:

Leave a comment