Alice đang thiết kế những viên gạch đơn giản. Đầu tiên, cô vẽ một hình vuông kích thước ~n \times n~ cm, với ~n~ là một số nguyên dương. Sau đó cô vẽ hai đường tròn bán kính ~n~ cm với tâm lần lượt là góc trái dưới và góc phải trên của hình vuông. Cô thu được một họa tiết hình chiếc lá như hình dưới đây với ~n = 4~.
Tiếp theo, Alice tô màu phần "chiếc lá", nghĩa là phần nằm trong hoặc trên biên cả hai đường tròn.
Tuy nhiên, Alice cần biến thiết kế này thành một phiên bản kỹ thuật số. Do đó, cô kẻ các đường thẳng để chia lưới ~n \times n~ cm thành các ô vuông nhỏ kích thước ~1 \times 1~ cm. Sau đó, cô lấy các giao điểm của các đường thẳng, để thu được lưới ~(n + 1) \times (n + 1)~ điểm. Cô đánh dấu những điểm ở vị trí được tô màu trong phiên bản gốc bằng màu đỏ, để thu được hình dưới đây (với ~n = 4~).
Alice tạo ra một bảng ~(n + 1) \times (n + 1)~ ký tự .
hoặc #
, với ký tự .
ở hàng ~i~ cột ~j~ trong bảng tương ứng với điểm ở hàng ~i~ cột ~j~ trên lưới không được đánh dấu, và ngược lại. Do đó, cô đã tạo ra được bảng ký tự sau với ~n = 4~:
#....
.##..
.###.
..##.
....#
Sau khi đã có thiết kế chiếc lá dạng xuôi, Alice có thể dễ dàng thiết kế chiếc lá dạng ngược, bằng cách thực hiện phép lật theo phương ngang, Với ~n = 4~, đây là bản ký tự cho thiết kế chiếc lá dạng ngược:
....#
..##.
.###.
.##..
#....
Sau khi có phiên bản kỹ thuật số của cả hai kiểu thiết kế, Alice muốn mô phỏng việc sử dụng các viên gạch như thế này để lát một mặt sàn bằng ~a \times b~ viên gạch, được xếp thành một lưới hình chữ nhật gồm ~a~ hàng và ~b~ cột, với ~a, b~ là hai số nguyên dương. Để họa tiết được đẹp mắt, Alice muốn:
- Viên gạch đầu tiên bên trái của hàng trên cùng sử dụng thiết kế chiếc lá dạng xuôi.
- Hai viên gạch có cùng dạng (xuôi, ngược) bất kỳ không được chung cạnh với nhau.
Bảng ký tự dưới đây mô phỏng thiết kế mặt sàn với ~n = 4, a = b = 2~:
#........#
.##....##.
.###..###.
..##..##..
....##....
....##....
..##..##..
.###..###.
.##....##.
#........#
Alice muốn thử mô phỏng với các bộ giá trị ~(n, a, b)~ khác nhau, nhưng cô không có quá nhiều thời gian để vẽ và đánh dấu các viên gạch. Các bạn hãy giúp Alice mô phỏng thiết kế mặt sàn với các bộ giá trị khác nhau nhé.
Dữ liệu - Nhập từ tệp văn bản TILES.inp
:
- Một dòng duy nhất gồm ba số nguyên dương ~n, a, b~ ~(1 \le n, a, b \le 1000; a \times n, b \times n \le 1000)~.
Kết quả - Ghi ra tệp văn bản TILES.out
:
- Gồm ~(n + 1) \times a~ dòng, mỗi dòng gồm một chuỗi ~(n + 1) \times b~ ký tự
.
hoặc#
mô phỏng thiết kế mặt sàn sau khi lát gạch.
Chấm điểm
Điểm | Ràng buộc bổ sung |
---|---|
~32~ | ~n \le 2, a = b = 1~ |
~28~ | ~n \le 2~ |
~22~ | ~a = b = 1~ |
~18~ | Không có ràng buộc gì thêm |
Ví dụ
Dữ liệu (TILES.inp
)
4 2 3
Kết quả (TILES.out
)
#........##....
.##....##..##..
.###..###..###.
..##..##....##.
....##........#
....##........#
..##..##....##.
.###..###..###.
.##....##..##..
#........##....
Bình luận