Disponemos de un listado de las visitas de turistas a ciudades del mundo. Cada visita dice qué turista ha visitado qué ciudad en qué año.
Haz un programa que muestre los grupos de turistas que, por coincidencia, han visitado la misma ciudad en el mismo año.
El listado de entrada consiste en una secuencia de líneas en el
formato "<nom> <any> <ciutat>". Los
nombres de turistas y ciudades son siempre una sola palabra; el año
siempre tiene 4 dígitos.
Cada línea de la salida es una coincidencia de turistas y tiene el
formato
"<any> <ciutat>: <nom1> <nom2> ... <nomN>".
Más en detalle, cada línea empieza con el año y el nombre de la ciudad
separados por un espacio, seguido de ":", y la lista,
ordenada por el nombre, de los turistas que han coincidido, separados
por un espacio. Las líneas se ordenan, de forma creciente, por el año y
después la ciudad (que también sería el orden lexicográfico de
concatenar el año, un espacio, y la ciudad). Si una combinación
año-ciudad no se ha visitado o solo la ha visitado un solo turista, no
debe aparecer en el listado.
Este problema tiene como centro de interés la eficiencia.
Input
Eve 2015 New_York Alice 2015 Paris Alice 2015 London Bob 2016 London Charlie 2015 New_York Alice 2016 Paris Alice 2016 New_York David 2015 New_York David 2016 Paris Charlie 2015 New_York
Output
2015 New_York: Charlie David Eve 2016 Paris: Alice David