Pasionat de problemele cu arbori, Petrică a găsit următoarea problemă: Se dă un arbore cu noduri și costuri pare pe muchii.
Distanța dintre două noduri ale arborelui este egală cu suma costurilor muchiilor de pe cel mai scurt drum dintre cele două noduri.
Se definește valoarea unui arbore ca fiind suma distanțelor dintre oricare noduri ale acestuia.
Petrică are la dispoziție următoarea operație, pe care o poate face o singură dată: alege un lanț al arborelui și înjumătățește costul tuturor muchiilor de pe acel lanț. Ajutați-l să găsească cea mai mică valoare a unui arbore obținut după aplicarea operației.
Un lanț se definește ca fiind o înșiruire de noduri distincte (pentru ), unde există o muchie între și pentru orice .
Date de intrare
Pe primul rând se gasește un număr întreg pozitiv reprezentând numărul de noduri ale arborelui.
A doua linie conține numere întregi , reprezentând că există o muchie între nodul și nodul .
A treia linie conține numere întregi , unde reprezintă costul muchiei dintre și .
Date de ieșire
Se va afișa pe primul rând un număr întreg reprezentând valoarea minimă a unui arbore obținută după aplicarea operației asupra arborelui inițial.
Restricții
- pentru orice de la la
- pentru orice de la la
- este par pentru orice de la la
Subtask 1 (10 puncte)
- Arborele nu conține niciun nod cu grad mai mare de (arborele este un lanț).
Subtask 2 (25 de puncte)
- pentru orice de la la
Subtask 3 (15 puncte)
- pentru orice de la la
Subtask 4 (20 de puncte)
- pentru orice de la la
Subtask 5 (5 puncte)
- Toate valorile muchiilor sunt egale ( pentru orice ).
Subtask 6 (10 puncte)
Subtask 7 (15 puncte)
- Fără restricții suplimentare
Exemple
stdin
5
1 1 2 1
30 16 38 14
stdout
254
stdin
10
1 1 2 2 3 3 7 7 9
-2 2 -4 4 -6 6 10 2 0
stdout
77