RAU-Gigel și Praștie împodobeau bradul de Crăciun și s-au gândit că ar merge niște colinde. Căutând, au dat de cuvântul “carol”, care evident le-a amintit de orele de informatică. Cu asta și copacul din fața lor în minte, s-au gândit la următoarea problemă, pe care vă roagă să o rezolvați.
Cerință
Se dă un arbore cu noduri înrădăcinat în și un șir de lungime , cu . Definim nivelul unui nod ca fiind distanța față de rădăcină și strămoșul unui nod ca fiind oricare nod de pe drumul de la la rădăcină. De asemenea, , unde este un șir, reprezintă nodul de nivel maxim care este strămoș pentru toate nodurile din șirul . Să se calculeze sumă după , unde este fiecare subsecvență a șirului . Mai formal, să se afle:
Date de intrare
Fișierul de intrare allca.in
conține pe prima linie numărul de noduri din arbore. Pe următoarele linii avem descrierea arborelui, câte o muchie pe fiecare linie. Pe linia se află , iar pe linia șirul .
Date de ieșire
Fișierul allca.out
va conține, pe prima linie, un singur număr întreg, suma căutată.
Restricții și precizări
- Pentru teste în valoare de de puncte, pentru oricare este strămoșul lui
- Pentru alte teste în valoare de de puncte, arborele este un lanț
- Pentru teste în valoare de de puncte,
- Pentru teste în valoare de de puncte,
- Pentru teste în valoare de de puncte,
- Pentru restul testelor se păstrează restricțiile inițiale din enunț
Exemplul 1
allca.in
2
1 2
2
2 1
allca.out
4
Explicație
Exemplul 2
allca.in
5
1 2
2 3
3 4
4 5
8
4 1 2 4 2 4 2 2
allca.out
64
Exemplul 3
allca.in
3
1 2
1 3
5
1 3 2 2 1
allca.out
20