公式

C - 水路の流量調整 / Flow Control of Waterways 解説 by sounansya


条件は「全ての頂点について、その頂点の水量が子の水量の合計以上である」となります。したがって、各頂点についてその子の水量の総和を求め、条件を順に判定すれば良いです。

実装例(Python3)

n = int(input())
p = [-1] + [int(x) - 1 for x in map(int, input().split())]
v = list(map(int, input().split()))
a = [0] * n
for i in range(n - 1, 0, -1):
    a[p[i]] += v[i]
for i in range(n):
    if a[i] > v[i]:
        print("No")
        break
else:
    print("Yes")

投稿日時:
最終更新: