Se dă un arbore cu noduri, numerotate de la la , având rădăcina în nodul . Fiecare muchie , de la nodul la nodul , al arborelui are o lungime dată, . Rădăcina transmite un mesaj tuturor celorlalte noduri din arbore. Timpul după care o frunză primeşte mesajul este egal cu suma lungimilor muchiilor de pe drumul de la rădăcină la această frunză.
Se doreşte ca durata transmisiei mesajului de la rădăcină la fiecare frunză să fie identică. Pentru aceasta avem la dispoziţie operaţia de incrementare, care poate fi aplicată asupra oricărei muchii şi constă în creşterea lungimii muchiei cu o unitate. Costul aplicării operaţiei de incrementare asupra unei muchii este . Operaţia poate fi aplicată în mod repetat asupra aceleiaşi muchii.
Cerinţă
Determinaţi costul total minim al operaţiilor necesare ca mesajul să ajungă în acelaşi timp în frunze.
Date de intrare
Pe prima linie a fişierului de intrare arb.in
se află numărul natural . Următoarele linii conţin câte patru numere naturale , , , , separate prin câte un singur spaţiu, având semnificaţia din enunţ.
Date de ieșire
În fişierul de ieşire arb.out
se va scrie pe prima linie costul minim cerut.
Restricții și precizări
- Pentru din teste va fi egal cu .
- Pentru din teste costul operaţiei de incrementare pentru orice muchie va fi egal cu .
Exemplul 1
arb.in
7
1 2 2 1
2 4 2 1
2 5 1 1
1 3 1 1
3 6 2 1
3 7 1 1
arb.out
3
Explicație
Se vor incrementa muchiile , şi cu o unitate. Cum toate au costul , răspunsul va fi egal cu .
Exemplul 2
arb.in
9
1 2 3 1
2 4 4 1
2 5 2 1
1 3 2 10
3 6 4 1
3 7 1 10
7 8 1 2
7 9 1 1
arb.out
12
Explicație
Se vor incrementa muchiile:
- până la lungimea cu costul ;
- până la lungimea cu costul ;
- până la lungimea cu costul ;
- până la lungimea cu costul ;
Costul minim cerut este .