Lors d'une conférence des Nations Unies, deux ambassadeurs veulent se parler, mais malheureusement chacun ne parle qu'une seule langue et ce n'est pas la même langue. Heureusement, ils ont accès à plusieurs traducteurs, qui comprennent et parlent chacun quelques langues. Votre tâche consiste à déterminer la chaîne de traducteurs la plus courte (car vous voulez que le moins possible soit perdu dans la traduction) qui permette aux deux ambassadeurs de se parler.
Codage
Entrée: deux langues sous forme de chaînes minuscules à 2 lettres (chaque langue d'ambassadeur) et une liste de listes de langues (une liste par traducteur disponible)
Vous pouvez également accepter des entiers au lieu de codes à 2 lettres.
Sortie: une séquence de traducteurs, soit par index, soit par valeur, qui est l'une des chaînes de traducteurs les plus courtes permettant aux deux ambassadeurs de communiquer. S'il n'y a pas de chaîne de traducteurs valide, le comportement n'est pas défini. (Vous pouvez planter, afficher n'importe quelle valeur arbitraire ou indiquer une erreur)
Une chaîne de traducteurs valide est celle où le premier traducteur parle la langue d'un ambassadeur, le deuxième et les traducteurs suivants partagent au moins une langue avec le traducteur précédent et le dernier traducteur parle la langue de l'autre ambassadeur.
Exemples
Utilisation de l'indexation basée sur zéro:
es, en, [
[es, en]
] ==> [0]
en, en, [] ==> []
en, jp, [
[en, zh, ko, de],
[jp, ko]
] ==> [0, 1]
es, ru, [
[gu, en, py],
[po, py, ru],
[po, es]
] ==> [2, 1]
fr, gu, [
[it, fr, de, es, po, jp],
[en, ru, zh, ko],
[jp, th, en],
[th, gu]
] ==> [0, 2, 3]
fr, ru, [
[fr, en],
[en, ko, jp],
[en, ru]
] ==> [0, 2]
de, jp, [
[en, fr],
[ko, jp, zh],
[fr, po],
[es, ko, zh],
[de, en, th],
[en, es],
[de, fr]
] ==> [4, 5, 3, 1]
Règles et hypothèses
- Les règles d'E / S standard (utilisez n'importe quel format d'E / S pratique) et les failles interdites s'appliquent.
- Vous pouvez supposer que parler et comprendre les langues est parfaitement symétrique et que toutes les traductions possibles entre les langues sont tout aussi efficaces.
- Il n'y a pas de concept de langues "assez proches". Il n'est pas suffisant d'utiliser le portugais à une extrémité où l'espagnol est requis, par exemple.
- S'il existe plusieurs chaînes de traducteurs les plus courtes, l'une d'entre elles fera l'affaire.
- Si les ambassadeurs parlent la même langue, la liste des traducteurs doit être vide
- Lequel des ambassadeurs est le premier n'a pas d'importance; la liste des traducteurs peut être en avant ou en arrière.
- Les ambassadeurs ne parlent qu'une seule langue pour relever ce défi
- Les traducteurs parlent au moins deux langues
- Les codes de langue à 2 lettres n'ont pas besoin de correspondre aux langues réelles
- Vous pouvez supposer qu'il existe une séquence valide de traducteurs
- Si vous affichez la séquence par valeur, incluez l'ensemble complet des langues disponibles, pas seulement les langues pertinentes.
Bon golf!
en,fr,sp;en,gr;gr,fr