28.29m
import sys
input = sys.stdin.readline
res = 0
timer = [0] * (10 ** 4 + 1)
for i in range(int(input().rstrip())):
temps = list(map(int, input().rstrip().split()))
dur = temps[0]
n = temps[1]
p_list = temps[2:]
cur = 0
if n == 0:
cur = dur
timer[i + 1] = cur
else:
cur = max(timer[p] for p in p_list) + dur
timer[i + 1] = cur
res = max(cur, res)
print(res)
다 풀고 찾아보니 위상정렬 + DP 문제였다!
그런데 다른 풀이를 찾아봐도 내 풀이랑 크게 다른점을 느끼지 못했다.
안되게따 오늘은 위상정렬을 공부해야게따