아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

Подсчет операций

면접 대비

시간 제한2초메모리 제한1024 MB

요약
각 정점에 정수가 적힌 루트 있는 트리에서 한 번의 연산으로 루트에서 어떤 정점까지의 경로에 1을 더하거나 빼며, 모든 값을 0으로 만드는 최소 연산 횟수를 구한다.
난이도

보통10점 중 6점

유형
트리, DFS, 그리디, 수학
정답자
아직 제출이 없습니다

문제

Пингвины нашли самолет в джунглях и почти смогли отремонтировать его. Осталось лишь починить двигатель.

Для этого им нужно разобраться в приборной панели. Она представляет из себя подвешенное дерево c корнем в вершине 00, в каждой вершине которого написано целое число. Поскольку пингвины не хотят работать сами, они наняли на работу обезьян и будут платить им бананами. На каждом этапе ремонтных работ пингвины могут выбрать любую вершину, а далее за один банан обезьяна согласна изменить значения во всех вершинах на пути от корня дерева до выбранной пингвинами вершины: либо прибавить к значениям всех этих вершин 11, либо вычесть из значений всех этих вершин 11.

Самолет заведется только тогда, когда во всех вершинах будут написаны нули. Пингвины хотят за минимальное количество бананов завести двигатель, поэтому им нужна ваша помощь.

입력

В первой строке дано целое число nn --- количество вершин в дереве (1≤n≤100,0001 \le n \le 100\\,000).

В следующих n−1n - 1 строках дано по одному целому числу p_ip\_i --- номер вершины, являющейся предком вершины ii (0≤p_i<n0 \le p\_i < n, 1≤i<n1 \le i < n). Гарантируется, что вам дано подвешенное дерево с корнем в вершине 00.

В последней строке дано nn чисел --- исходные значения в вершинах (∣a_i∣≤100,000|a\_i| \le 100\\,000).

출력

Выведите единственное число --- минимальное количество бананов, необходимое, чтобы завести самолет.

예제1

  1. 예제 1

    입력
    3
    0
    0
    2 1 3
    
    예상 출력
    6