Time limit: 3s
Memory limit: 512MB
Input: warb.in
Output: warb.out
A fost odată ca-n povești,
A fost ca niciodată,
Din rude mari împărătești,
Un prea frumos arbore cu noduri.
Cerință
Gigel, un mare informatician (supranumit luceafărul informaticii românești), vrea să coloreze preafrumosul arbore folosind culori, codificate prin numerele naturale de la la .
După ce a asociat fiecărei culori o pondere și fiecărui nod o valoare , Gigel a zis că o colorare a nodurilor arborelui este bună dacă fiecare nod respectă una dintre următoarele condiții:
- Nodul are culoarea ; sau
- Dacă nodul are culoarea , atunci el are exact vecini cu culoarea .
Tot Gigel definește valoarea unei astfel de colorări ca fiind , unde reprezintă culoarea nodului .
Ajutați-l pe Gigel să afle cea mai mare valoare a unei colorări bune!
Date de intrare
Pe prima linie din fişierul de intrare warb.in
se vor găsi două numere naturale și — numărul de noduri din arbore, respectiv numărul de culori.
Pe a doua linie se vor găsi numere naturale — ponderile celor culori.
Pe a treia linie se vor găsi numere naturale — valorile asociate celor noduri.
Pe următoarele linii se vor găsi câte 2 numere naturale si , semnificând faptul că există o muchie în arbore între nodurile și .
Date de iesire
Pe prima linie din fişierul de ieşire warb.out
se va afişa un singur număr natural, cea mai mare a unei colorari .
Restricții și precizări
- gradul nodului .
- Se garantează că graful din fișierul de intrare este un arbore (un graf neorientat conex aciclic).
- Pentru a obține punctele pentru un anumit subtask, cel puțin o sursă trimisă va trebui să treacă toate testele din acel subtask.
# Punctaj Restricții 0 0 Exemple 1 4 2 4 3 22 4 10 5 8 , arborele este un lanț (gradele tuturor nodurilor sunt mai mici sau egale cu ) 6 7 arborele este un lanț 7 10 arborele este o stea (există un nod cu gradul ) 8 19 9 6 10 10 Fără restricții suplimentare
Exemplul 1
warb.in
3 2
1 2
1 1 1
1 2
1 3
warb.out
5
Explicație
Pentru primul exemplu, o colorare optimă este :
- Nodul are culoarea .
- Nodul are culoarea și exact un vecin cu culoarea .
- Nodul are culoarea și exact un vecin cu culoarea .
- Valoarea acestei colorări este egală cu .
Exemplul 2
warb.in
5 4
1 2 3 4
2 3 1 1 1
1 2
1 3
2 4
2 5
warb.out
8
Explicație
Pentru al doilea exemplu, o colorare optimă este :
- Nodul are culoarea și exact doi vecini cu culoarea .
- Nodul are culoarea .
- Nodul are culoarea .
- Nodul are culoarea și exact un vecin cu culoarea .
- Nodul are culoarea și exact un vecin cu culoarea .
- Valoarea acestei colorări este egală cu .
Exemplul 3
warb.in
7 4
1 9 8 7
2 2 0 0 1 1 1
1 2
1 3
2 4
2 5
3 6
3 7
warb.out
46
Explicație
Pentru al treilea exemplu, o colorare optimă este .
Exemplul 4
warb.in
6 5
7 9 50 30 80
0 1 0 0 1 0
1 2
2 3
3 4
3 5
5 6
warb.out
380
Explicație
Pentru al patrulea exemplu, o colorare optimă este .
Exemplul 5
warb.in
7 7
458 2960 8526 2565 6679 9621 8814
1 0 0 0 2 1 1
3 4
1 2
1 4
5 7
4 5
4 6
warb.out
49102
Explicație
Pentru al cincilea exemplu, o colorare optimă este .
Exemplul 6
warb.in
7 7
3564 9408 8285 6312 7323 3223 4441
0 0 0 1 1 1 2
3 2
5 3
4 1
7 3
4 7
6 7
warb.out
54831
Explicație
Pentru al șaselea exemplu, o colorare optimă este .