Copiado al portapapeles
Descripción
Los profesores tienen una vida muy atareada, con una agenda llena de trabajo y reuniones. Al profesor Jorge le gusta tomarse algún respiro durante el día pero está tan ocupado que no suele tener muchas oportunidades para ello.
Sin embargo, insiste en poder dormir, al menos, una siesta al día. Como es lógico, le gusta que esta sea lo más larga posible, que le permita su agenda.
Escribamos un programa que le ayude a encontrar la mejor hora.
Entrada
La entrada consta de un número arbitrario de casos de prueba, donde cada uno de ellos representa un día.
La primera línea de cada caso contiene un entero positivo $s \leq 100$, que representa el número de citas programadas para ese día.
Las siguientes líneas contienen información sobre las citas, con el formato hora1 hora2 cita, donde hora1 representa la hora a la que comienza la cita y hora2 la hora a la que esta termina.
Todas las horas tienen el formato hh:mm y la hora de finalización siempre será posterior a la de inicio. Las horas estarán separadas por un espacio en blanco.
Todas las horas serán iguales o mayores a las 10:00, e iguales o menores a las 18:00. Por lo tanto, la respuesta debe estar, también, contenida en ese intervalo. Es decir, la siesta no puede empezar antes de las 10:00 ni terminar después de las 18:00.
La descripción de la cita puede estar compuesta de cualquier secuencia de caracteres, aunque siempre estar´an en la misma línea. Podemos asumir que ninguna línea tendrá más de 255 caracteres,que $10 \leq hh \leq 18$ y que $0 \leq mm \leq 60$.
No podemos suponer, sin embargo, que la entrada sea mostrará en ningún orden específico. Se deber leer la entrada hasta llegar al final del archivo.
Salida
Para cada caso de prueba, se debe mostrar una única línea que empieza con:
La identificación Day #d:, donde d corresponde al número del caso de prueba (comenzando con 1).
Tras un espacio en blanco, la expresión the longest nap starts at hh:mm and will last for [H hours and] M minutes. (la siesta más larga comienza a las hh:mm y dura H horas y M minutos) donde hh:mm es la hora a la que empieza la siesta. Para mostrar la duración de la siesta, se deben considerar las siguientes reglas:
- Si el tiempo total X es inferior a 60 minutos, unicamente se debe mostrar “X minutes.”
- Si el tiempo total X es de, al menos, 60 minutos, se mostrar “H hours and M minutes.”, donde: H = X ÷ 60 (evidentemente, sin decimales) y M = X %60.
No es necesario tener en cuenta ninguna regla de pluralización; en consecuencia, imprimir 1 minutes 1 hours es lo correcto en este caso.
La duración de la siesta se calcula por la diferencia entre la hora de finalización y la hora de inicio.
Es decir, si una cita finaliza a las 14:00 y la siguiente comienza a las 14:47, tendremos 14:47 − 14:00 = 47 minutos de posible siesta.
Si hay varios periodos posibles de siesta con la misma duración máxima, se deber mostrar el que comience antes. Se puede dar por hecho que el profesor no esté siempre ocupado, por lo que siempre haber sitio para, al menos, una siesta.
Ejemplo Entrada
4 10:00 12:00 Lectures 12:00 13:00 Lunch, like always. 13:00 15:00 Boring lectures... 15:30 17:45 Reading 4 10:00 12:00 Lectures 12:00 13:00 Lunch, just lunch. 13:00 15:00 Lectures, lectures... oh, no! 16:45 17:45 Reading (to be or not to be?) 4 10:00 12:00 Lectures, as everyday. 12:00 13:00 Lunch, again!!! 13:00 15:00 Lectures, more lectures! 15:30 17:15 Reading (I love reading, but should I schedule it?) 1 12:00 13:00 I love lunch! Have you ever noticed it? :)
Ejemplo Salida
Day #1: the longest nap starts at 15:00 and will last for 30 minutes. Day #2: the longest nap starts at 15:00 and will last for 1 hours and 45 minutes. Day #3: the longest nap starts at 17:15 and will last for 45 minutes. Day #4: the longest nap starts at 13:00 and will last for 5 hours and 0 minutes.