Navios de Azeroth
En el vasto mundo de Azeroth, existen varios continentes, para moverse entre ellos es necesario usar barcos. Estos tienen una ruta en una dirección específica. La Alianza está teniendo problemas para planear las rutas desde la capital(Ventormenta), así que los ingenieros gnomos te han pedido crear un programa que resuelva el siguiente problema.
Dadas ciudades, enumeradas de a y rutas iniciales. ¿Cuál es la mínima cantidad de rutas que se necesita agregar a la planificación para poder llegar desde un barco que sale de la capital(Ventormenta) a cualquier otra ciudad?
Nota: recuerde que las rutas son dirigidas(en un solo sentido), es decir la ruta lleva desde la ciudad hasta
Entrada:
La primera línea contiene tres enteros , y (). El número de ciudades, el número de rutas iniciales y el número que representa a la capital(Ventormenta) respectivamente.
Las siguientes líneas contienen las rutas iniciales. La ruta es dada como un par de ciudades , (, ). Para cada par de ciudades () habrá a lo más una ruta directa de a . Las rutas en la dirección opuesta entre un par de ciudades están permitidas (de a y de a ).
Salida:
Imprime un entero. El mínimo número de rutas adicionales que tienes que añadir para poder visitar cualquier ciudad si el barco sale desde la capital(Ventormenta). Si todas las ciudades ya son alcanzables, imprime .
Subtareas:
-Subtarea 1: (15 puntos).
-Subtarea 2: Para cada arista en la entrada se garantiza y (20 puntos).
-Subtarea 3: (40 puntos).
-Subtarea 4: Sin restricciones adicionales (25 puntos).
Ejemplos
Entrada 1
9 9 1
1 2
1 3
2 3
1 5
5 6
6 1
1 8
9 8
7 1
Salida 1
3
Entrada 2
5 4 5
1 2
2 3
3 4
4 1
Salida 2
1
Entrada 3
3 2 2
1 2
3 2
Salida 3
2
Explicacion de los casos de ejemplo:
En el siguiente grafo está representado el ejemplo 1.
Podemos añadir las rutas (6,4), (7,9), (1,7) para hacer todas las ciudades alcanzables desde s=1.
Para el segundo ejemplo:
Podemos añadir alguna de las rutas (5,1), (5,2), (5,3), (5,4) para hacer todas las ciudades alcanzables desde s=5.
Para el tercer ejemplo:
Añadir las rutas (2,1) y (2,3) es una posible solución.
Comments