Два посли на конференції ООН хочуть розмовляти один з одним, але, на жаль, кожен говорить лише однією мовою - і вони не одна і та ж мова. На щастя, вони мають доступ до декількох перекладачів, які кожен розуміють та розмовляють кількома мовами. Ваше завдання - визначити найкоротший ланцюжок перекладачів (оскільки ви хочете, щоб якомога менше було втрачено в перекладі), що дозволяє двом послам розмовляти між собою.
Кодування
Введення: дві мови у вигляді двох рядкових рядків рядка (мова кожного посла) та список списків мов (один список на доступного перекладача)
Ви також можете взяти цілі числа замість двобуквених кодів.
Вихід: Послідовність перекладачів або за індексом, або за значенням, яка є однією з найкоротших ланцюжків перекладачів, яка дозволяє двом послам спілкуватися. Якщо немає дійсного ланцюжка перекладачів, поведінка не визначена. (Ви можете вийти з ладу, вивести будь-яке довільне значення або вказати на помилку)
Дійсний ланцюжок перекладачів - це той, де перший перекладач розмовляє однією мовою посла, другий та наступні перекладачі діляться принаймні однією мовою з попереднім перекладачем, а останній перекладачем розмовляє мовою другого посла.
Приклади
Використання нульової індексації:
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]
Правила та припущення
- Застосовуються стандартні правила вводу-виводу (використовуйте будь-який зручний формат вводу-виводу) та заборонені лазівки.
- Ви можете припустити, що розмова та розуміння мов ідеально симетричні і що всі можливі переклади між мовами однаково ефективні.
- Не існує поняття "досить близьких" мов. Наприклад, недостатньо добре використовувати португальську мову з одного боку, наприклад, якщо потрібна іспанська мова.
- Якщо є кілька найкоротших ланцюгів перекладачів, будь-який з них зробить це.
- Якщо посли розмовляють однаковою мовою, список перекладачів повинен бути порожнім
- Хто з послів перший, не має значення; список перекладачів може бути вперед або назад.
- Заради цього виступу посли розмовляють лише однією мовою
- Перекладачі розмовляють принаймні двома мовами
- 2-літерні мовні коди не повинні відповідати справжнім мовам
- Ви можете припустити, що є дійсна послідовність перекладачів
- Якщо виводите послідовність за значенням, включіть повний набір доступних мов, а не лише відповідні.
Щасливого гольфу!
en,fr,sp;en,gr;gr,fr