hola amigos soy nuevo en este foro y recien estoy aprendiendo por mi cuenta c++, estoy tratando de desarrollar un problema y su enunciado es este:
"Acquapia es un pequeño país atravesado por varios ríos, todos ellos navegables. Todos los ríos tienen su fuente dentro de Acquapia, en las montañas, y todos los ríos terminan en el mar – un rio nunca termina en otro rio.
Durante su curso (no en su origen) un rio puede ser dividido en dos o más corrientes. Hay una ciudad donde quiera que el rio comience, divida o termine, y cada ciudad toca al menos un rio. La siguiente figura muestra un mapa de Acquapia, con dos ríos y 20 ciudades. Para mayor claridad, solo algunas ciudades han sido etiquetadas. En la figura, E y F son las ciudades que tienen ríos, B, C y D son las ciudades donde un rio se divide en diferentes corrientes; y A es una ciudad donde termina un rio.
Están tan extendidos, los ríos son los principales medios de comunicación en Acquapia. Pero desde que el país está en guerra con un país vecino, no es seguro para los buques cruzar el mar, por lo que los buques solo pueden navegar en los ríos. Esto significa que para ir de la ciudad A a la ciudad D, un buque debe viajar rio arriba (en contra del caudal del rio) de la A a la B y C, hacer un cambio de flujo de C y luego viajar rio debajo de C a D. CAMBIO DE CORRIENTE, que es la operación de cambiar de navegar rio arriba a rio abajo, es algo difícil y peligroso, ya que la corriente de los ríos son fuertes en Acquapia y las vueltas son afiladas (peligrosas). Tenga en cuenta que para navegar de B a E (o de E a B) no es necesario un cambio de corriente. Además, debido a la guerra, no es posible navegar, por ejemplo, de B a F. Acquapia Cargo Manangment (ACM) es una empresa de software que se especializa en sistemas para la navegación. ACM quiere que usted escriba un programa que, dada la descripción de los ríos, la descripción de las ciudades, y un conjunto de preguntas, cada uno de ellos compuesto por un par de ciudades X e Y, responda las siguientes preguntas:
-Ahora que los buques no pueden cruzar el mar, es posible navegar de la ciudad X a la ciudad Y.
-Si es posible navegar de X ha Y, ¿un buque necesita hacer un cambio de corriente? En caso afirmativo, en cual ciudad, a fin de que la distancia recorrida sea la más corta posible.
ENTRADA:
La entrada contiene varios casos de prueba. Primera línea de un caso de prueba consta de 4 enteros C, R, S y Q, separadas por espacios, lo que representa respectivamente el número de ciudades (2<= C <= 103), el numero de ríos (1 <= R <= C/2), el numero o secciones de ríos (1<= S<=C-1) y el número de consultas que se hará (1<=Q<=2*105). Las ciudades están numeradas correlativamente del 1 al C. La segunda línea de un caso de prueba contiene R enteros distintos, separado por espacios simples, indicando las ciudades que son fuente de ríos. Cada una de las siguientes S líneas describe una sección de rio diferente y contiene dos enteros X e Y, separados por un único espacio, lo que indica que hay un tramo de rio que fluye de la ciudad X a la ciudad Y (X <> Y). Luego vienen Q líneas, que describen cada consulta. Cada pregunta se compone de dos números enteros A y B, separados por un único espacio, lo que representa dos ciudades (A<>B). El fin de la entrada se indica por medio de C=R=S=Q=0.
SALIDA:
Para cada caso de prueba de su programa debe salir Q+1 lineas, donde Q es el número de consultas en el caso de prueba. La primera línea debe estar vacia; cada una de las siguientes Q líneas deben contener un numero entero, lo que representa la respuesta a la correspondiente pregunta, en el mismo orden que el de la entrada, Si no es posible navegar entre dos ciudades en la consulta se debe imprimir “-1”.
Si es posible navegar entre las dos ciudades, pero no es necesario un cambio de corriente, imprimir “0”. De lo contrario, imprimir el número entero que representa la ciudad donde el cambio de flujo debe hacerse."
Si alguien puede darle solucion para antes del lunes seria fenomenal espero su pronta respuesta. Porfavor envien el codigo para el turbo c++ y para pasarlo en un solo ejecutable a verdad implementenlo con uso de archivos, ojala y alguien pueda resolver este problema gracias por anticipado