Se dă un arbore T cu n noduri, numerotate de la 1 la n, având rădăcina în nodul 1. Fiecare muchie (x, y) de la nodul x la nodul y al arborelui are o lungime dată, d(x, y). 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 (x, y) şi constă în creşterea lungimii muchiei cu o unitate. Costul aplicării operaţiei de incrementare asupra unei muchii (x, y) este c(x, y). 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 arb1.in se află numărul natural n. Următoarele n-1 linii conţin câte patru numere naturale x y d(x, y) c(x, y), separate prin câte un singur spaţiu, având semnificaţia din enunţ.
Date de ieşire
Fişierul de ieşire arb1.out va conţine o singură linie pe care se va scrie pe prima linie costul minim cerut.
Restricţii
• 1 ≤ n ≤ 100 000
• 1 ≤ d ≤ 10 000
• 1 ≤ c ≤ 10 000
• Pentru 10% din teste n va fi egal cu 3.
• Pentru 50% din teste costul operaţiei de incrementare pentru orice muchie va fi egal cu 1.
Exemple
arb1.in
arb1.out
Explicaţii
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
3
Se vor incrementa muchiile (2, 5), (1, 3) şi (3, 7) cu o unitate. Cum toate au costul 1, răspunsul va fi egal cu 3.
Se vor incrementa muchiile:
• (2, 5) până la lungimea 4 cu costul 2;
• (3, 6) până la lungimea 5 cu costul 1;
• (7, 8) până la lungimea 4 cu costul 6;
• (7, 9) până la lungimea 4 cu costul 3;
Costul minim cerut este 2+1+6+3=12.