Câu đố
Xem PDF
Điểm:
2100 (p)
Thời gian:
1.0s
Bộ nhớ:
512M
Input:
PUZZLE.INP
Output:
PUZZLE.OUT
Trong phần thi Trò chơi lớn, lớp chuyên Tin và lớp chuyên Toán cùng đạt số điểm cao nhất. Để phân định thắng thua và tìm ra nhà vô địch, BTC Hội trại đã đưa ra một thử thách cuối cùng, là một câu đố như sau:
“Cho một nền nhà hình vuông có độ dài cạnh \(n = 2^k\). Nền nhà này bị khuyết một số ô theo quy luật đặc biệt. Có hai loại nền nhà như sau:
- Loại I: Khuyết một phần tư, ở một trong bốn góc: 1 - trái trên, 2 - phải trên, 3 - trái dưới, 4 - phải dưới
- Loại II: Khuyết một ô duy nhất, nằm bên trong hình vuông.
Nhiệm vụ của bạn là, tìm cách dùng các viên gạch hình thước thợ (hình chữ L), được tạo bởi 3 ô vuông đơn vị để lát toàn bộ nền nhà (tức phần không bị khuyết).”
| Gạch hình thước thợ | Nền loại I (\(k = 3\)), khuyết phần 3 | Nền loại II (\(k = 2\)), khuyết ô \((2,3)\) |
|---|---|---|
![]() |
![]() |
![]() |
Một phương án lát nền được coi là hợp lệ nếu thỏa mãn hai điều kiện sau:
- Mỗi một ô vuông trên nền nhà đều được lát bởi đúng một viên gạch. Đương nhiên, mỗi viên gạch phải lát đúng 3 ô vuông và không nằm đè lên phần bị khuyết.
- Hai viên gạch kề cạnh nhau phải khác màu nhau. Có 26 màu gạch khác nhau, được ký hiệu bởi các ký tự trong
a-z(từatớiz).
Là một thành viên của lớp chuyên Tin, bạn hãy suy nghĩ giải pháp cho vấn đề này nhé!
Input
- Dữ liệu vào đọc từ tệp
PUZZLE.INP:- Dòng đầu tiên chứa số nguyên dương \(k\) (\(2 \le k \le 10\)). Kích thước nền là \(n = 2^k\).
- Dòng thứ hai chứa số \(\lambda\) (\(\lambda \in \{1, 2\}\)) cho biết nền nhà thuộc loại I nếu \(\lambda = 1\) và thuộc loại II nếu \(\lambda = 2\).
- Dòng thứ ba chứa:
- Số nguyên \(t\) (\(1 \le t \le 4\)) ký hiệu cho phần bị khuyết, nếu \(\lambda = 1\).
- Hai số nguyên \(x, y\) (\(1 \le x, y \le n\)) là tọa độ ô khuyết, nếu \(\lambda = 2\).
- Dữ liệu vào đảm bảo tồn tại cách lát nền thỏa mãn.
Output
- Ghi ra tệp
PUZZLE.OUT:- Gồm \(n\) dòng, mỗi dòng chứa chính xác \(n\) ký tự mô tả một phương án lát nền.
- Sử dụng ký tự chữ cái in thường (
a-z) biểu thị màu viên gạch. Sử dụng ký tự dấu cách biểu thị cho ô nền khuyết.
Example
Test 1
Input
2
1
3
Output
zzbb
zaab
az
zz
Scoring
- \(20\%\) số điểm tương ứng với \(\lambda = 1\); \(k \le 3\).
- \(20\%\) số điểm khác tương ứng với \(\lambda = 1\); \(k \le 6\).
- \(20\%\) số điểm khác tương ứng với \(\lambda = 1\).
- \(40\%\) số điểm còn lại tương ứng với \(\lambda = 2\).
Kỳ thi:
- [TFL x Tân Khoa] Contest #3 "Ôn thi Tuyển sinh 10" (TS10 Chuyên Tin 2025) (29 Tháng năm, 2025)



Bình luận