Énoncé¶
Les dieux nordiques doivent appliquer un protocole de communication très spécial pour prévenir les dieux des villes qui se font détruire par le serpent Jörmungandr. Ce protocole, nommé HTTP (pour Hel's Transcendent Transfer Protocol), a pour objectif de s'assurer que tous les dieux reçoivent le message une seule fois.
Jøsëf est recruté par les dieux pour mettre en place le protocole de communication.
Le protocole est le suivant :
- Le message d'abord placé dans une enveloppe, puis remise dans les mains d'un dieu quelconque.
- Cette enveloppe ne peut ensuite transiter qu'entre deux dieux qui partagent le même prénom ou le même nom.
- Cette enveloppe doit passer dans les mains de tous les dieux.
- Chaque dieu ne peut recevoir le message qu'une unique fois
- Si au transfert précédent le message est passé entre deux dieux qui ont le même prénom, alors au transfert suivant le message doit passer entre deux dieux qui ont le même nom, et inversement.
Étant donné la liste des noms des dieux, proposez si possible un chemin de dieu en dieu qui respecte le protocole HTTP.
Entrée¶
L’entrée contiendra :
- Sur la première ligne, un entier : N, le nombre de dieux.
- Sur les lignes suivantes, une liste de N éléments : dieux, liste des
prénoms et noms des dieux séparés par un espace.
- Une ligne par élément de la liste : une chaine de 32 caractères ou moins.
Sortie¶
S'il n'existe aucun chemin qui permette de faire passer le message par tous les
dieux en respectant le protocole HTTP, afficher sur une ligne le message
IMPOSSIBLE
. Sinon, afficher, sur une ligne par dieu et dans l'ordre désiré,
les noms complets des dieux par lesquels le message doit passer. Si plusieurs
solutions existent, afficher n'importe laquelle d'entre elles.
Contraintes¶
- $1 \le N \le 20$
- Deux dieux ne peuvent pas partager le même prénom et le même nom
Contraintes de performance¶
- $1 \le N \le 100\,000$