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