from sys import setrecursionlimit
from math import sqrt, floor
from collections import deque
def solve():
n, s = map(int, input().split(" "))
adj = [[] for _ in range(n+1)]
w = [0] * (n+1)
roots = []
for i in range(1, n+1):
x, v = map(int, input().split(" "))
if v: adj[v].append(i)
else: roots.append(i)
w[i] = x
vis = [0] * (n+1)
def dp(v: int):
res = w[v]
for to in adj[v]:
res += max(0, dp(to))
return res
res = 0
for v in roots: res += max(0, dp(v))
print(res)
"""
"""
test = 0
for _ in range(1 if not test else int(input())): solve()
컴파일 시 표준 출력 (stdout) 메시지
Compiling 'Main.py'...
=======
adding: __main__.pyc (deflated 36%)
=======
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |