Paradojas espacio-temporales
El 21 de octubre de 2015, Marty, Doc y Jennifer llegaron a Hill Valley desde 1985 a bordo del De Lorean en el que Doc había instalado su máquina del tiempo. Tenían que solventar un problema con Marty Jr., el hijo de la pareja, que estaba apunto de meterse en un lío juvenil que daría con sus huesos en la cárcel.
Pero la misión había que cumplirla con sumo cuidado. En esa fecha vivían las versiones, 30 años mayores, de los propios Marty y Jennifer. Doc les avisó de que bajo ningún concepto debían encontrarse e interactuar con ellos, porque eso generaría una paradoja espacio-temporal que bien podría destruir el universo.
Por desgracia, muchas cosas salieron mal. Es verdad que consiguieron evitar que Marty Jr. fuera detenido. Pero el Marty de 1985 decidió comprar el Almanaque Deportivo, con los resultados deportivos de la segunda mitad del siglo XX, para aprovecharlo a la vuelta en su propio beneficio. Además, una patrulla de policía encontró a la joven Jennifer inconsciente en la calle, y la llevó a su casa de 2015 donde, irremediablemente, tuvo contacto con su yo del futuro. A partir de ahí, todo se descontroló: Biff Tannen robó la máquina del tiempo y viajó a 1955, cambiando completamente el destino y creando una línea temporal alternativa en la que ya nada era igual.
Y es que los viajes en el tiempo son muy peligrosos. Si no se tiene cuidado, puede terminar habiendo muchas versiones de un viajante en un mismo instante temporal, con el consiguiente riesgo de que se produzca un mal encuentro.
Con tanto viaje, Marty y su amigo en el tiempo Doc tienen muchos problemas para seguir la pista de quién está cuándo… y cuántas veces. ¿Puedes ayudarles?
Entrada
El programa deberá leer, de la entrada estándar, múltiples casos de prueba. Un caso de prueba comienza con una primera línea con un número v indicando la cantidad de viajes en el tiempo que realiza Marty, 1 ≤ v ≤ 500.000. A continuación aparecerá una línea por cada viaje realizado. Estará compuesto por dos fechas, indicando la fecha de partida (desde la que se salta) y la fecha a la que se llega, ambas en formato DD/MM/AAAA. Por simplicidad, se considera que el viaje se realiza en el último instante del día de partida, y la llegada se realiza en el momento en el que comienza el día destino. Se garantiza que todas las fechas son correctas*, y estarán entre el 1 de enero del año 0, y el último día del año 9999 (todo el mundo sabe que el De Lorean sólo tenía 4 dígitos para el año). Además, los viajes son siempre correctos. Es decir, el primer viaje no ocurre antes del nacimiento de Marty, y los viajes se dan en el orden en que se producen por lo que la salida de un viaje ocurre siempre después que la llegada del anterior.
Tras la lista de viajes en el tiempo, vendrá un número con la cantidad de consultas que se desean realizar, 1 ≤ c ≤ 50.000, y que irán a continuación, una por línea. Cada consulta será una fecha, en el mismo formato y con las mismas restricciones que las de los viajes temporales.
La entrada terminará con un caso sin viajes, que no deberá procesarse.
Salida
Para cada consulta de cada caso se escribirá, en una línea independiente, cuántas versiones de Marty hay ese día. Ten en cuenta que Marty nació el 12 de junio de 1968 y, como todo héroe de ficción, no morirá nunca.
Tras procesar cada caso de prueba se escribirá "----" (cuatro guiones).
Entrada de ejemplo
7 26/10/1985 05/11/1955 12/11/1955 26/10/1985 26/10/1985 21/10/2015 21/10/2015 26/10/1985 26/10/1985 12/11/1955 20/11/1955 02/09/1885 07/09/1885 27/10/1985 4 05/11/1955 12/11/1955 26/10/1985 21/10/2015 0
Salida de ejemplo
1 2 3 2 ----
Notas
El caso de prueba de ejemplo se corresponde con los viajes en el tiempo realizados por Marty McFly en la trilogía Regreso al Futuro. Para una mejor comprensión, a continuación se muestra un esquema:
- Viaje accidental de Marty mientras huía de los libios.
- Regreso al futuro.
- Viaje a 2015, junto con Doc y Jennifer, para evitar que su hijo acabe en la carcel. Es el relatado en el enunciado.
- Los tres vuelven a casa, para descubrir que lo hacen a una línea temporal dañada.
- Viaje al pasado para evitar que Biff se dé el almanaque deportivo a sí mismo.
- Viaje al pasado para evitar que Buford "Perro rabioso" Tannen mate a Doc por una deuda de 80 dólares.
- Vuelta a casa.