Loading [MathJax]/jax/output/SVG/jax.js

Областная олимпиада по информатике 2020 год, 9-11 классы


Задача E. Есмахан и стартап

Ограничение по времени:
1 секунда
Ограничение по памяти:
256 мегабайт

Есмахан - начал стартап по разведению моржов. Он нанял n1 работника. Есмахан - сотрудник номер 1, все остальные пронумерованы от 2 до n. У каждого из работников есть один непосредственный начальник pi. У Есмахан нет начальников. Гарантируется, что значения pi образуют дерево. Теперь Есмахан должен им заплатить. Работник с номером i хочет получить ai тенге. Пусть i работник получит bi тенге, тогда его недовольство будет |aibi|. У Есмахана есть принцип - каждый работник должен получить больше чем любой его подчиненный. Вам нужно распределить зарплаты так чтобы суммарное недовольство было минимально.
Формат входного файла
В первой строке одно целое число n (1<=n<=200000). Во второй строке n1 целых чисел p2,p3,...pn (1<=pi<=i1) - номера начальников работников. В третей строке n целых чисел a1,a2,...an (1<=ai<=109) - ожидания работников.
Формат выходного файла
Выведите одно целое число - минимальное суммарное недовольство работников.
Система оценки
Данная задача содержит ровно 25 тестов и каждый оценивается в 4 баллов.
  1. Тест из условия.
  2. 1<=n<=1000, 1<=ai<=1000 для 1<=i<=n, у каждого работника не больше одного подчиненного | 2 теста.
  3. 1<=n<=1000, 1<=ai<=1000 для 1<=i<=n | 2 теста.
  4. 1<=n<=1000, у каждого работника не больше одного подчиненного | 2 теста.
  5. 1<=n<=1000 | 3 теста.
  6. 1<=n<=200000, у каждого работника не больше одного подчиненного | 5 тестов.
  7. 1<=n<=200000 | 10 тестов.
Пример:
Вход
7
1 2 1 1 5 6
1 2 3 1 4 3 3
Ответ
7
Замечание
Ответ в примере b=5,4,3,1,4,3,2 ( Batyr Sardarbekov )
посмотреть в олимпиаде

Комментарий/решение:

  2
3 года 7 месяца назад #

показать/скрыть код

C++

пред. Правка 2   0
3 года 1 месяца назад #

показать/скрыть код

Java

  1
2 года 6 месяца назад #

показать/скрыть код

C++