Олимпиадный тренинг

Задача . D. Бандиты в городе


Все в том же городе, где люди гуляли по улице, завелись бандиты! Один из таких, одетый в черную маску, задался целью поймать как можно больше мирных граждан.

Город состоит из \(n\) площадей, которые соединяют \(n-1\) дорог так, что от каждой площади обычно можно добраться до другой ровно одним способом. Площадь под номером \(1\) является главной площадью города.

Во время воскресной прогулки дороги между площадями в городе были изменены на односторонние таким образом, что теперь можно добраться от главной площади до любой другой.

Бандит высадился из автомобиля на главной площади города в тот момент, когда на \(i\)-й площади было \(a_i\) горожан. Далее происходит следующий процесс. Сначала каждый мирный горожанин, находящийся на площади, из которой выходит хотя бы одна односторонняя дорога, выбирает одну из таких дорог и перемещается по ней. Затем бандит выбирает одну из дорог, выходящих из площади, на которой он сейчас находится, и перемещается по ней. После этого процесс повторяется до тех пор, пока бандит не окажется на площади, из которой не выходит ни одной дороги. Бандит ловит всех граждан, оказавшихся на этой площади.

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

Входные данные

В первой строке входного файла содержится одно целое число \(n\) — количество площадей в городе (\(2 \le n \le 2\cdot10^5\)).

Во второй строке входного файла содержатся \(n-1\) целых чисел \(p_2, p_3 \dots p_n\) — означающие, что существует дорога из площади \(p_i\) в \(i\) (\(1 \le p_i < i\)).

В третьей строке содержатся \(n\) целых чисел \(a_1, a_2, \dots, a_n\) — количество горожан на каждой площади изначально (\(0 \le a_i \le 10^9\)).

Выходные данные

Выведите одно целое число — количество горожан, которые задержит бандит при оптимальных действиях обеих сторон.

Примечание

В первом примере горожане на площади \(1\) могут разделиться на две группы \(2 + 1\), тогда на второй и третьей площади окажется по \(3\) человека.

Во втором примере независимо от действий граждан бандит сможет поймать хотя бы \(4\) человека.


Примеры
Входные данныеВыходные данные
1 3
1 1
3 1 2
3
2 3
1 1
3 1 3
4

time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя