JOI 2025 - Masking Tape
Xem PDFJOI đang chơi tô màu bằng giấy và băng dính che sơn.
Tờ giấy hình chữ nhật được chia thành lưới gồm \(H\) hàng và \(W\) cột. Gọi ô ở hàng thứ \(i\) từ trên xuống (\(1 \le i \le H\)), cột thứ \(j\) từ trái sang (\(1 \le j \le W\)) là ô \((i, j)\).
Mỗi ô có một màu, được biểu diễn bằng một số nguyên. Ban đầu, màu của tất cả các ô đều là \(0\).
JOI thực hiện \(Q\) thao tác với tờ giấy và băng dính. Thao tác thứ \(k\) (\(1 \le k \le Q\)) được mô tả tùy theo giá trị của số nguyên \(q_k\) như sau:
- Nếu \(q_k = 1\), thao tác được cho bởi các số nguyên \(x_k, y_k, c_k\). Xét từng ô trong bốn ô \((x_k, y_k)\), \((x_k + 1, y_k)\), \((x_k, y_k + 1)\), \((x_k + 1, y_k + 1)\): nếu ô không bị băng dính che phủ thì đổi màu ô thành \(c_k\); nếu ô bị băng dính che phủ thì không làm gì với ô đó.
- Nếu \(q_k = 2\), thao tác được cho bởi các số nguyên \(x_k, y_k\). Che phủ bốn ô \((x_k, y_k)\), \((x_k + 1, y_k)\), \((x_k, y_k + 1)\), \((x_k + 1, y_k + 1)\) bằng băng dính.
Sau khi hoàn thành \(Q\) thao tác, JOI bóc tất cả băng dính ra. Khi bóc băng dính khỏi một ô, màu của ô đó vẫn là màu ngay trước khi ô bị băng dính che phủ.
Cho thông tin về \(Q\) thao tác, hãy xác định màu cuối cùng của tất cả các ô trên tờ giấy.
Dữ liệu vào
Dữ liệu vào có dạng:
H W Q
(Query 1)
(Query 2)
...
(Query Q)
Mỗi dòng \((\mathrm{Query}\ k)\) (\(1 \le k \le Q\)) chứa các số nguyên cách nhau bởi dấu cách. Số nguyên đầu tiên là \(q_k\), và dòng này có một trong hai dạng:
- Nếu \(q_k = 1\):
1 x_k y_k c_k. - Nếu \(q_k = 2\):
2 x_k y_k.
Dữ liệu ra
In màu cuối cùng của tất cả các ô trên \(H\) dòng. Dòng thứ \(i\) (\(1 \le i \le H\)) chứa \(W\) số nguyên cách nhau bởi dấu cách, trong đó số thứ \(j\) (\(1 \le j \le W\)) là màu của ô \((i, j)\).
Ràng buộc
- \(2 \le H \le 500\).
- \(2 \le W \le 500\).
- \(1 \le Q \le 200\,000\).
- \(q_k \in \{1, 2\}\) (\(1 \le k \le Q\)).
- Nếu \(q_k = 1\): \(1 \le x_k \le H - 1\), \(1 \le y_k \le W - 1\), \(1 \le c_k \le 10^9\) (\(1 \le k \le Q\)).
- Nếu \(q_k = 2\): \(1 \le x_k \le H - 1\), \(1 \le y_k \le W - 1\) (\(1 \le k \le Q\)).
- Tất cả các giá trị trong dữ liệu vào đều là số nguyên.
Chấm điểm
- \(32\) điểm: \(H = 2\), \(W = 2\), \(q_k = 1\) với mọi \(1 \le k \le Q\).
- \(32\) điểm: \(q_k = 1\) với mọi \(1 \le k \le Q\).
- \(36\) điểm: Không có ràng buộc bổ sung.
Ví dụ
Ví dụ 1
Input
5 5 4
1 2 2 1
2 1 2
2 3 3
1 1 3 5
Output
0 0 0 5 0
0 1 1 5 0
0 1 1 0 0
0 0 0 0 0
0 0 0 0 0
Giải thích
Xét lần lượt \(4\) thao tác.
Ở thao tác thứ \(1\), \(q_1 = 1\). Cả bốn ô \((2, 2)\), \((2, 3)\), \((3, 2)\), \((3, 3)\) đều không bị băng dính che phủ, nên màu của chúng được đổi thành \(1\). Khi đó, tờ giấy như sau:
0 0 0 0 0
0 1 1 0 0
0 1 1 0 0
0 0 0 0 0
0 0 0 0 0
Ở thao tác thứ \(2\), \(q_2 = 2\). Các ô \((1, 2)\), \((1, 3)\), \((2, 2)\), \((2, 3)\) được che bằng băng dính. Khi đó, tờ giấy như sau; dấu * bên phải số biểu diễn màu của một ô cho biết ô đó bị băng dính che phủ:
0 0* 0* 0 0
0 1* 1* 0 0
0 1 1 0 0
0 0 0 0 0
0 0 0 0 0
Ở thao tác thứ \(3\), \(q_3 = 2\). Các ô \((3, 3)\), \((3, 4)\), \((4, 3)\), \((4, 4)\) được che bằng băng dính. Khi đó, tờ giấy như sau:
0 0* 0* 0 0
0 1* 1* 0 0
0 1 1* 0* 0
0 0 0* 0* 0
0 0 0 0 0
Ở thao tác thứ \(4\), \(q_4 = 1\). Các ô \((1, 4)\), \((2, 4)\) không bị băng dính che phủ, nên màu của chúng được đổi thành \(5\). Các ô \((1, 3)\), \((2, 3)\) bị băng dính che phủ nên không thay đổi. Khi đó, tờ giấy như sau:
0 0* 0* 5 0
0 1* 1* 5 0
0 1 1* 0* 0
0 0 0* 0* 0
0 0 0 0 0
Vì vậy, sau khi bóc tất cả băng dính, màu cuối cùng của các ô đúng như dữ liệu ra của ví dụ.
Ví dụ này thỏa mãn ràng buộc của bài toán con \(3\).
Ví dụ 2
Input
5 5 3
1 1 1 2
1 3 3 3
1 2 4 2
Output
2 2 0 0 0
2 2 0 2 2
0 0 3 2 2
0 0 3 3 0
0 0 0 0 0
Giải thích
Ví dụ này thỏa mãn ràng buộc của các bài toán con \(2, 3\).
Ví dụ 3
Input
10 10 10
2 5 7
2 5 6
1 5 6 1
1 9 2 1
2 1 1
1 2 4 2
2 3 2
1 2 2 3
1 9 9 2
1 8 8 1
Output
0 0 0 0 0 0 0 0 0 0
0 0 3 2 2 0 0 0 0 0
0 0 0 2 2 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1 1 0
0 1 1 0 0 0 0 1 1 2
0 1 1 0 0 0 0 0 2 2
Giải thích
Ví dụ này thỏa mãn ràng buộc của bài toán con \(3\).
Nguồn
Bản dịch tiếng Việt từ đề gốc tiếng Nhật của Ủy ban Olympic Tin học Nhật Bản. Đề gốc và bản dịch được cung cấp theo giấy phép CC BY-SA 4.0.
Kỳ thi:
- JOI 2025 - Vòng loại 2 (8 Tháng 12., 2024)
Bình luận