Johnny mencoba membuat teka-teki silang, tetapi ia kesulitan membuat kata-kata yang cocok satu sama lain.
Dia telah datang dengan beberapa kata persegi panjang sederhana: yaitu, kelompok kata-kata yang membentuk persegi panjang di mana semua jalur horizontal dan vertikal membentuk sebuah kata.
//2x2
PA
AM
//2x3
GOB
ORE
//3x3
BAG
AGO
RED
//3x4
MACE
AGES
WEES
Namun, untuk membuat teka-teki yang baik, ia membutuhkan beberapa kata persegi panjang yang agak lebih besar dari 3x4. Alih-alih menderita karena pengaturan surat selama berjam-jam, Johnny lebih memilih untuk memiliki program yang melakukan ini untuknya - dan dalam karakter sesedikit mungkin, karena blok kode yang panjang sangat menakutkan bagi programmer biasa seperti Johnny.
Diberikan
- sebuah file teks kamus mana kata-kata dipisahkan oleh baris baru dalam urutan abjad,
- input menentukan jumlah baris dan kolom dalam kata-kata persegi panjang (yang dapat disediakan namun paling nyaman dalam bahasa pemrograman pilihan Anda)
menghasilkan setidaknya satu kata persegi panjang. Jika tidak mungkin untuk menghasilkan kata persegi panjang dengan leksikon dan dimensi yang diberikan, program tidak perlu memiliki perilaku yang ditentukan. Tidak perlu bagi program untuk dapat menghasilkan persegi panjang yang berisi lebih dari 64 huruf atau memiliki dimensi yang melebihi 8 di kedua arah. Program harus dapat menyelesaikan dalam jumlah waktu yang wajar, katakanlah, dalam tiga puluh menit atau kurang.
EDIT: Jika Anda melakukan NxN persegi panjang, Anda diizinkan untuk menggunakan file kamus yang lebih kecil yang hanya berisi kata-kata yang memiliki panjang N huruf.