Dua duta besar di konferensi PBB ingin berbicara satu sama lain, tetapi sayangnya masing-masing hanya berbicara satu bahasa - dan mereka bukan bahasa yang sama. Untungnya, mereka memiliki akses ke beberapa penerjemah, yang masing-masing memahami dan berbicara beberapa bahasa. Tugas Anda adalah untuk menentukan rantai penerjemah terpendek (karena Anda ingin sesedikit mungkin hilang dalam terjemahan mungkin) yang memungkinkan kedua duta besar untuk berbicara satu sama lain.
Coding
Input: dua bahasa sebagai string huruf kecil 2 huruf (bahasa masing-masing duta besar) dan daftar bahasa (satu daftar per penerjemah yang tersedia)
Anda dapat mengambil bilangan bulat sebagai pengganti kode 2 huruf.
Keluaran: Urutan penerjemah baik berdasarkan indeks atau nilai yang merupakan salah satu rantai penerjemah terpendek yang memungkinkan kedua duta besar berkomunikasi. Jika tidak ada rantai penerjemah yang valid, perilaku tersebut tidak terdefinisi. (Anda mungkin macet, menampilkan nilai sembarang, atau menunjukkan kesalahan)
Rantai penerjemah yang valid adalah di mana penerjemah pertama berbicara bahasa satu duta besar, penerjemah kedua dan selanjutnya berbagi setidaknya satu bahasa dengan penerjemah sebelumnya, dan penerjemah terakhir berbicara bahasa duta besar lainnya.
Contohnya
Menggunakan pengindeksan berbasis nol:
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]
Aturan dan Asumsi
- Aturan IO standar (gunakan format I / O yang nyaman) dan celah terlarang berlaku.
- Anda dapat berasumsi bahwa berbicara dan memahami bahasa sangat simetris dan bahwa semua terjemahan yang mungkin antar bahasa sama-sama efisien.
- Tidak ada konsep bahasa "cukup dekat". Misalnya, tidak cukup baik menggunakan bahasa Portugis di satu sisi di mana bahasa Spanyol diperlukan, misalnya.
- Jika ada beberapa rantai penerjemah terpendek, salah satu dari mereka akan melakukannya.
- Jika para duta besar berbicara dengan bahasa yang sama, daftar penerjemah harus kosong
- Yang mana dari duta besar yang pertama tidak penting; daftar penerjemah dapat maju atau mundur.
- Duta besar hanya berbicara satu bahasa demi tantangan ini
- Penerjemah berbicara setidaknya dua bahasa
- Kode bahasa 2 huruf tidak perlu sesuai dengan bahasa asli
- Anda mungkin menganggap ada urutan penerjemah yang valid
- Jika mengeluarkan urutan berdasarkan nilai, sertakan set lengkap bahasa yang tersedia, bukan hanya yang relevan.
Selamat Golf!
en,fr,sp;en,gr;gr,fr