Skiena y Revilla, Concursos Internacionales de Informática y Programación Manual de Entrenamiento por Internet, Universidad de Valladolid, España, 2003. ISBN: 84-8448-371-1 111205 Robo El inspector Robostop está furioso. Anoche robaron un banco y el ladrón escapó. Las carreteras de salida de la ciudad se cerraron lo más pronto posible, para impedir que el ladrón escapase. Después, el inspector le pidió a toda la gente de la ciudad que buscase al ladrón, pero las únicas respuestas que recibió decı́an “No le vemos”. Robostop está decidido a descubrir exactamente cómo escapó el ladrón. Nos pide que escribamos un programa, que analice la información del inspector, para determinar dónde estaba el ladrón en un momento determinado. La ciudad en la que se produjo el robo tiene forma rectangular. Todas las carreteras que salen de la ciudad fueron bloqueadas un cierto periodo de tiempo t, durante el cual se recibieron varios informes del tipo “El ladrón no está en el rectángulo Ri a la hora ti ”. Asumiendo que el ladrón no se puede mover más que una unidad de espacio por cada periodo de tiempo, tratemos de localizar la posición exacta del ladrón en cada momento. Entrada La entrada describe varios robos. La primera lı́nea de cada descripción consta de tres números W , H y t (1 ≤ W, H, t ≤ 100), donde W es el ancho, H el alto de la ciudad y t es el periodo de tiempo durante el cual las carreteras estuvieron cerradas. La siguiente lı́nea contiene un único entero n (0 ≤ n ≤ 100), donde n es el número de mensajes que recibió el inspector. Las siguientes n lı́neas constan, cada una, de cinco enteros ti , Li , Ti , Ri , Bi , donde ti es el momento en que se produjo la observación (1 ≤ ti ≤ t), y Li , Ti , Ri , Bi son la izquierda, parte superior, derecha y parte inferior, respectivamente, de la zona rectangular observada. El punto (1, 1) es la esquina superior izquierda, y (W, H) es la esquina inferior derecha de la ciudad. Los mensajes indican que el ladrón no estuvo en la zona indicada a la hora ti . La entrada finaliza con un caso de prueba en el que W = H = t = 0. Este caso no debe ser procesado. Salida Por cada robo, mostrar la lı́nea “Robbery #k:” (Robo #k:), donde k es el número del robo. Después, hay tres posibilidades: Si es imposible que el ladrón siga todavı́a en la ciudad, mostrar el mensaje “The robber has escaped.” (El ladrón ha escapado). En el resto de casos, asumiremos que el ladrón está todavı́a en la ciudad. Mostrar una lı́nea con el formato “Time step τ : The robber has been at x,y.” (Tiempo τ : El ladrón estaba en x,y) por cada instante en el que se pueda determinar la ubicación exacta, donde x e y son la columna y la fila, respectivamente, del ladrón en el instante τ . Ordenar estas lı́neas por el tiempo τ . Si no se puede deducir nada, mostrar el mensaje “Nothing known.” (No se sabe nada) y esperar que el inspector no se enfade aún más. Imprimir una lı́nea en blanco al final de cada caso analizado. http://www.programming-challenges.com c copyright 2006 Skiena y Revilla, Concursos Internacionales de Informática y Programación Manual de Entrenamiento por Internet, Universidad de Valladolid, España, 2003. ISBN: 84-8448-371-1 Ejemplo de entrada 4 4 5 4 1 1 1 1 1 1 4 1 1 4 4 2 10 10 1 2 1 1 0 0 0 4 3 3 4 3 3 4 4 4 10 10 Ejemplo de salida Robbery #1: Time step 1: Time step 2: Time step 3: Time step 4: The The The The robber robber robber robber has has has has been been been been at at at at 4,4. 4,3. 4,2. 4,1. Robbery #2: The robber has escaped. http://www.programming-challenges.com c copyright 2006