Limpiando un árbol
Flora encontró un árbol, este árbol tiene nodos, conectados por
aristas. Las aristas están
llenas de polvo, así que Flora decidió limpiarlas.
Limpiar las aristas de un árbol arbitrario se puede hacer de la siguiente manera:
Elija 2 hojas diferentes (un nodo es una hoja si está conectado a exactamente un nodo), y limpie todas
las aristas que se encuentran en el camino más corto entre ellas. Si este camino tiene aristas, entonces
el costo de limpiar este camino es
.
Puede elegir cada hoja una sola vez. Un árbol se considera limpio cuando todas sus aristas están limpias. El costo es la suma de los costos de los caminos limpiados.
Flora cree que el árbol que se encontró es muy simple, así que se imagina variaciones de este. En la variación
,
ella añade
hojas extra al árbol original: para cada una de estas hojas, ella elige un nodo del árbol original
al cual conectarlo con una arista. Nota que algunos nodos podrían dejar de ser hojas.
Para cada una de estas variaciones diga el costo mínimo de limpiar el árbol.
Subtareas
- Subtarea 1 (9 puntos):
, hay una arista entre el nodo
y el
para todo
. Flora no le añade ninguna hoja al nodo
.
- Subtarea 2 (9 puntos):
, hay una arista entre el nodo
y el
para todo
. Flora no le añade ninguna hoja al nodo
ni al
.
- Subtarea 3 (16 puntos):
,
.
- Subtarea 4 (19 puntos): El árbol original es un árbol binario perfecto con raíz en el nodo
(i.e Cada nodo interno tiene exactamente 2 hijos y todas las hojas están a la misma distancia del nodo
).
- Subtarea 5 (17 puntos):
para todo
.
- Subtarea 6 (30 puntos): Sin restricciones adicionales.
Entrada
La primera línea contiene 2 enteros separados por espacios, (
) y
(
).
Cada una de las siguientes líneas contiene 2 enteros separados por espacios
y
(
), denotando que los nodos
y
están conectados por una arista.
Las siguientes líneas describen las variaciones: el primer entero en la línea
es
(
para todo
). Luego hay
enteros separados por espacios:
,
significa que se le añade una hoja al nodo
(
para todo
en toda variación). Podría añadirse más de una hoja a un mismo nodo.
Se garantiza que suma de .
Salida
Imprima líneas. En la línea
imprima un solo entero: el mínimo costo requrido para limpiar la variación
. Si es imposible imprima
-1
.
Ejemplo
Entrada 1
7 3
1 2
2 4
4 5
5 6
5 7
3 4
1 4
2 2 4
1 1
Salida 1
-1
10
8
Comments