Johnny đang cố gắng tạo ra các trò chơi ô chữ, nhưng anh ta gặp khó khăn trong việc tạo ra các từ khớp với nhau.
Ông đã đưa ra một số hình chữ nhật từ đơn giản: đó là các nhóm từ tạo thành một hình chữ nhật trong đó tất cả các đường ngang và dọc tạo thành một từ.
//2x2
PA
AM
//2x3
GOB
ORE
//3x3
BAG
AGO
RED
//3x4
MACE
AGES
WEES
Tuy nhiên, để tạo ra một câu đố hay, anh ta cần một số hình chữ nhật có kích thước lớn hơn 3x4. Thay vì đau đớn trong việc sắp xếp các chữ cái trong nhiều giờ, Johnny thích có một chương trình thực hiện điều này cho anh ta - và trong càng ít nhân vật càng tốt, bởi vì các khối mã dài cực kỳ đáng sợ đối với các lập trình viên bình thường như Johnny.
Được
- một từ điển tệp văn bản nơi các từ được phân tách bằng các dòng mới theo thứ tự bảng chữ cái,
- đầu vào chỉ định số lượng hàng và cột trong hình chữ nhật từ (có thể được cung cấp tuy nhiên thuận tiện nhất trong ngôn ngữ lập trình bạn chọn)
tạo ra ít nhất một hình chữ nhật từ. Nếu không thể tạo hình chữ nhật từ với từ vựng và kích thước đã cho, chương trình không cần phải có hành vi xác định. Chương trình không cần thiết để có thể tạo các hình chữ nhật có chứa hơn 64 chữ cái hoặc có kích thước vượt quá 8 theo hai hướng. Chương trình sẽ có thể hoàn thành trong một khoảng thời gian hợp lý, giả sử, trong ba mươi phút hoặc ít hơn.
EDIT: Nếu bạn đang thực hiện một hình chữ nhật NxN, bạn được phép sử dụng một tệp từ điển nhỏ hơn chỉ chứa các từ có độ dài N chữ cái.