TTS2018 – Teka Teki Silang


Tugas pemrograman pertama untuk semester ganjil 2018/2019 adalah TTS2018 – Teka Teki Silang. Silakan klik tersebut untuk submit solusi. Selamat Ngoding.

Diberikan input kamus yang berisi k kata-kata dan matrik m x n huruf-huruf. Cari sebanyak mungkin rangkaian huruf yang berdampingan dalam matrik yang membentuk kata dalam kamus. Didalam matrik. setiap huruf berdampingan dengan 8 huruf lain. Setiap kata tidak boleh menggunakan suatu elemen matrik lebih dari satu kali, tetapi satu elemen matrik dapat digunakan oleh lebih dari satu kata.

Misalnya, diberikan kamus={ “kucing”, “dalam” “karung” } dengan matrik tts (3×4) sbb:

k a r d
u c u g
m i n l

Dimulai dari huruf k, turun 1x, ke kanan 1x, turun lagi 1x, ke kanan 1x, dan naik miring ke kanan 1x, diperoleh “kucing”. Sekali lagi, dimulai dari huruf k, ke kanan 2x, turun 2x, dan naik miring ke kanan 1x, diperoleh “karung”. Karena tidak ada pilihan lain lagi, maka kata-kata yang dapat diperoleh adalah { “kucing”, “karung” }.

Input

Setiap data coba terdiri dari tiga baris. Baris pertama berisi 3 buah bilangan: jumlah kata dalam kamus (k), baris (m) dan kolom (n) dari tts. Diberikan jaminan bahwa 1 <= k <= 10 dan 1 <= m, n <= 7 dengan tiap kata akan kurang dari 50 huruf.
Baris kedua berisi k kata yang terpisahkan oleh satu spasi.
Baris terakhir berisi mn huruf yang terpisahkan oleh satu spasi, membentuk tts berukuran m x n.

Output

Output adalah kata-kata dalam kamus yang dapat dibentuk dari huruf-huruf dalam matrik sesesuai kriteria diatas.
Output hanya satu baris, kata-kata dipisahkan satu spasi, sesuai dengan urutan dalam kamus.
Jika tidak satupun kata dalam kamus diperoleh dalam tts, outputkan satu simbol dash (tanda minus, ““) dalam baris output.

Contoh

Input:
3 3 4
kucing dalam karung
k a r d u c u g m i n l

Output:
kucing karung

One response to “TTS2018 – Teka Teki Silang”

Leave a Reply