Cerința
Combatanții ti-au dat acum un arbore ce a prins o nouă viață algoritmică
Se dă un arbore cu n noduri, cu rădăcina în nodul 1. Rădăcina nu este considerată frunză chiar dacă are gradul 1. Fiecare nod are un cost asociat și o stare(activ sau inactiv), la început toate nodurile fiind active.
La o operație putem alege o frunză și schimba starea tuturor nodurilor pe drumul de la rădăcină la frunză.
Scopul este să aflați suma maximă a nodurilor active pe care o putem obține, știind că putem realiza operația dată de câte ori vrem pentru fiecare frunză.
Date de intrare
Programul citește pe prima linie de la tastatură numărul n.
Pe următoarele n-1 linii se vor citi muchiile arborelui, a b reprezentând faptul că există o muchie de la a la b.
Pe următoarea linie se vor citi cele n costuri.
Date de ieșire
Programul va afișa pe ecran suma maximă ce se poate obține.
Restricții și precizări
1 ≤ n ≤ 200000- cele
ncosturi vor fi cuprinse între-1.000.000.000și1.000.000.000 - Pentru
10puncte,1 ≤ n ≤ 20 - Pentru
20de puncte,1 ≤ n ≤ 1000
Exemplu:
Intrare
5 1 2 1 3 2 4 2 5 1 2 4 -4 -5
Ieșire
7
Explicație
În exemplu putem alege mai întâi nodul 4, care va schimba starea nodurilor 4, 2 și 1. Apoi, alegem nodul 5 care va schimba starea nodurilor 5, 2 și 1. Astfel, nodurile 1, 2 și 3 vor rămâne active, iar suma lor este 7.