Nộp bài | Các bài nộp | Làm tốt nhất | Về danh sách bài |
P167PROB - ROUND 7B - Trò chơi ghép chữ |
Cho trước một danh sách M từ, gọi là từ điển, mỗi từ là một chuỗi không quá 25 chữ cái thường, không có khoảng trống. Sau đó lần lượt cho các lưới kích thước N*N các chữ cái viết thường, với 2<=N<=8.
Hãy xác định xem từ một lưới như vậy có thể ghép thành các từ nào trong từ điển M từ ban đầu. Quy tắc ghép chữ từ lưới là chỉ được ghép theo chiều ngang, chiều dọc hoặc đường chéo và mỗi vị trí trên lưới chỉ được dùng một lần.
Ngoài ra, có một ngoại lệ bổ sung là với ô trên lưới có chữ cái q thì được xử lý như một cặp chữ cái qu khi ghép từ.
Input
Dòng đầu tiên chứa số M là số từ của từ điển (1 <= M <= 200). Tiếp theo là M dòng ghi M từ.
Tiếp theo là một hoặc nhiều lưới. Mỗi lưới bắt đầu bằng số N là kích thước lưới (2<=N<=8). Tiếp theo là N dòng ghi từng dòng trên lưới, chỉ bao gồm các chữ cái thường (từ a đến z). Lưới cuối cùng có N = 0.
Output
Với mỗi lưới N*N đã cho, ghi ra các từ trong từ điển có thể viết ra được từ lưới đó, mỗi từ trên một dòng và sắp xếp theo thứ tự từ điển. Sau đó viết tiếp một dòng có dấu – để thông báo kết thúc output của lưới đang xét.
Example
Input:
3
april
purple
quilt
5
rprit
ahqln
ietep
zrysg
ogwey
3
pel
aup
bcr
0
Được gửi lên bởi: | adm |
Ngày: | 2016-04-10 |
Thời gian chạy: | 1s-3s |
Giới hạn mã nguồn: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Ngôn ngữ cho phép: | ASM32-GCC ASM32 MAWK BC C CSHARP C++ 4.3.2 CPP CPP14 COFFEE LISP sbcl DART FORTH GO JAVA JS-RHINO KTLN OCT PAS-GPC PAS-FPC PERL PERL6 PROLOG PYTHON PYTHON3 PY_NBC R RACKET SQLITE SWIFT UNLAMBDA |
hide comments