Mismos amigos Z49559


Statement
 

pdf   zip

Consideremos un conjunto de personas y sus amistades. La amistad es simétrica: si Anna es amiga de Bernat, entonces Bernat es amigo de Anna.

Diremos que dos personas tienen los mismos amigos si el conjunto de amigos de la primera es exactamente igual al conjunto de amigos de la segunda. Por ejemplo, si Anna es amiga de Bernat y Carla, y Diana también es amiga de Bernat y Carla (y de nadie más), entonces Anna y Diana tienen los mismos amigos.

Observad que si dos personas tienen exactamente los mismos amigos, entonces no pueden ser amigas entre ellas.

Haced un programa que lea una lista de parejas de amigos y muestre todos los grupos de personas que tienen los mismos amigos. Cada grupo debe escribirse en una línea, con los nombres ordenados alfabéticamente.

Observación

En este problema el centro de interés es la eficiencia. Hay que encontrar una forma inteligente de agrupar las personas para evitar comparaciones innecesarias.

El orden de los grupos en la salida no es importante.

Entrada

La entrada es una secuencia de parejas de nombres (en minúsculas, sin espacios internos), separados por un espacio, una pareja por línea, acabada por fin de entrada.

Salida

Para cada grupo de personas con los mismos amigos (de tamaño 2\geq 2), se escribe una línea con los nombres del grupo ordenados alfabéticamente y separados por espacios. El orden de los grupos no es importante.

Public test cases
  • Input

    anna bernat
    anna carla
    bernat diana
    carla diana
    

    Output

    bernat carla
    anna diana
    
  • Input

    alex bo
    alex clara
    alex dani
    bo enric
    bo fina
    clara enric
    clara fina
    dani enric
    dani fina
    gina hugo
    

    Output

    bo clara dani
    alex enric fina
    
  • Information
    Author
    Pau Fernández
    Language
    Spanish
    Translator
    Pau Fernández
    Original language
    Catalan
    Other languages
    Catalan
    Official solutions
    C++
    User solutions
    C++