Охоронець Антон#237

Охоронець Антон

3 секунди
256 мегабайтів
Складна

Антон працює охоронцем. Він відповідає за об'єктів, які пронумеровані цілими числами від до . Також є n-1 дорога. -та дорога з'єднує об'єкти u_i та v_i, а також має довжину w_i. З кожного об'єкту можна дістатися до об'єкта .

На початку Антон знаходиться в об'єкті .

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

Антону потрібно зробити обхід всіх об'єктів. Йому потрібно спочатку відвідати усі об'єкти, які мають пріоритетність , потім, які мають пріоритетність , і так далі. Якщо є кілька об'єктів з однаковою пріоритетністю, то Антон може самостійно вибирати у якому порядку їх відвідувати. Зверніть увагу, що відвідувати будь-який об'єкт з пріоритетом він може лише, якщо відвідав усі об'єкти з пріоритетом k-1.

Знайдіть мінімальну відстань, яку йому прийдеться пройти.

Вхідні дані

Перший рядок містить одне ціле число (1 \leq n \leq 10^6).

Другий рядок містить n-1 цілих чисел p_i, які показують, що є дорога від об'єкта i+1 до об'єкта p_i (1 \leq p_i \leq n);

Третій рядок містить n-1 цілих чисел w_i, які є довжинами доріг між об'єктами i+1 та p_i (1 \leq w_i \leq 10^9).

Гарантується, що з об'єкта можна дійти до всіх інших об'єктів.

Вихідні дані

Виведіть одне ціле число — відповідь на задачу.

Приклади

Приклад 1

Loading
Loading

Приклад 2

Loading
Loading

Приклад 3

Loading
Loading

Оцінювання

  1. ( бали): 1 \le n \le 10;

  2. ( балів): 1 \le n \le 22;

  3. ( балів): не більше об'єктів мають однакову пріоритетність;

  4. ( балів): не більше об'єктів мають однакову пріоритетність;

  5. ( балів): w_i = 1;

  6. ( балів): 1 \le n \le 10^5;

  7. ( балів): без додаткових обмежень.