Dijkstra`s SSSP – Jalur Antar Bahasa (B03)

advertisement
Dijkstra’s SSSP – Jalur Antar Bahasa (B03)
John dan Mary adalah dua bersaudara yang sangat menggemari bahasa asing. Masing-masing dari mereka
mengikuti beberapa kursus bahasa. Setiap selesai mengikuti kursus, mereka bercakap-cakap tentang katakata baru yang mereka kenali. Suatu ketika, mereka menemukan bahwa ada kata-kata yang dimiliki oleh
beberapa bahasa sekaligus. Misalnya, kata “amigo” muncul dalam Bahasa Portugis dan Spanyol, dan
memiliki arti yang sama. Contoh lain adalah kata “date”, muncul dalam Bahasa Inggris dan Perancis,
namun artinya mungkin berbeda (karena “date” merupakan nama buah dan juga berarti “tanggal”).
Contoh lainnya lain, kata “red” di dalam Bahasa Spanyol berarti jaringan, dan dalam Bahasa Inggris
merupakan nama warna.
Atas penemuan menarik ini, John menantang Mary dalam sebuah permainan. Diberikan bahasa awal dan
bahasa akhir, dapatkah Mary menemukan sederetan kata-kata yang menghubungkan keduanya.
Misalnya, jika bahasa awalnya adalah Portugis, dan bahasa akhirnya adalah Perancis, Mary dapat
menjawab “amigo actual date” (Portugis/Spanyol, Spanyol/Inggris, Inggris/Perancis).
Supaya lebih menarik, John menambahkan sebuah aturan baru pada permainan ini. Jika ada beberapa
kemungkinan jawaban, Mary harus menjawab dengan deretan kata yang memiliki jumlah huruf paling
sedikit (spasi tidak dihitung). Misalnya, untuk contoh diatas, terdapat 15 huruf. Tapi ada kemungkinan
jawaban lain yang hanya mengandung 12 huruf, yaitu : “amigo red date”. Buatlah sebuah program yang
dapat membantu Mary menyelesaikan permainan ini. Anda hanya diminta untuk menampilkan jumlah
huruf dari solusi terbaiknya.
Spesifikasi Input
Input terdiri dari beberapa tes kasus. Baris pertama dari sebuah tes kasus terdiri dari sebuah bilangan
bulat M (1 ≤ M ≤ 500 ), menunjukan jumlah kata-kata yang dimiliki oleh dua bahasa. Baris kedua
mengandung dua buah string, yaitu nama bahasa awal dan akhir. M baris berikutnya masing-masing
terdiri dari 3 string, L1, L2, dan W, dimana W merupakan kata yang dimiliki oleh bahasa L1 dan L2 (L1 dan
L2 selalu berbeda). Semua string memiliki panjang ≤ 50 dan hanya terdiri dari huruf kecil saja. Pasangan
bahasa L1 dan L2 mungkin muncul lebih dari satu kali, namun kata W tidak akan muncul lebih dari satu
kali per test case. Akhir dari input ditandai dengan sebuah baris yang berisi sebuah angka 0.
Spesifikasi Output
Untuk setiap tes kasus, tampilkan sebuah angka yang menunjukan jumlah huruf dari solusi terbaik, atau
tampilkan string “impossivel” (berarti “tidak mungkin” dalam Bahasa Portugis) jika tidak ada solusi.
Contoh Input
Contoh Output
4
portugues frances
ingles espanhol red
espanhol portugues amigo
frances ingles date
espanhol ingles actual
4
12
impossivel
5
portugues alemao
ingles espanhol red
espanhol portugues amigo
frances ingles date
espanhol ingles actual
6
portugues frances
ingles espanhol red
espanhol portugues amigo
frances ingles date
frances espanhol la
portugues ingles a
espanhol ingles actual
0
Download