[DHBB25 - DX01 - 10] Bài 2: Hộp ma thuật
Xem dạng PDFTrong trường hợp đề bài hiển thị không chính xác, bạn có thể tải đề bài tại đây: Đề bài
Một buổi sáng, ở công ty ZZZ mà Bờm làm việc, một khách hàng đã mang đến một chiếc hộp lạ với yêu cầu làm một bản sao của hộp mà không được tháo rời để phân tích chi tiết. Biết rằng mặt cắt ngang của hộp chứa ~M \times N~ ô vuông (~M~ hàng và ~N~ cột). Mỗi ô có các lỗ tròn giống nhau ở các bức tường xung quanh, qua đó một tia sáng có thể đi vào hộp và ra ngoài qua lỗ ở bức tường khác của hộp. Các lỗ được đánh số liên tiếp từ ~1~ đến ~2 \times (M + N)~ quanh các bức tường bên ngoài của hộp, theo chiều ngược kim đồng hồ, bắt đầu từ lỗ nằm trên bức tường thẳng đứng của ô trên bên trái và đi xuống.
Trong mỗi ô của hộp có thể đặt một chiếc gương hai mặt được định hướng chéo từ góc dưới bên trái đến góc trên bên phải. Cả hai mặt của gương đều phản chiếu ánh sáng. Khi tia sáng với hướng vuông góc với bức tường chứa lỗ đi qua các ô trống, hướng của nó không thay đổi và nó ra ngoài qua lỗ đối diện. Khi tia sáng gặp gương, nó sẽ được phản chiếu và thay đổi hướng ~90~ độ. Vì hộp không thể tháo rời, vị trí của các gương bên trong không thể nhìn thấy. Cách duy nhất để xác định vị trí của các gương là bằng cách chiếu ánh sáng vào các lỗ và ghi lại các lỗ mà ánh sáng ra ngoài.
Yêu cầu: Biết các thông tin kích thước của hộp và các cặp chỉ số lỗ mà tia sáng vào và ra khỏi hộp, hãy tìm ra ô nào có gương và ô nào là trống. Nếu có nhiều giải pháp khả thi, chương trình có thể in ra bất kỳ giải pháp nào trong số đó.
Input
- Dòng 1: hai số nguyên dương ~M, N~ (~1 \le M, N \le 100~).
- Dòng ~2 \dots 2 \times (M + N)~: dòng ~i + 1~ ghi số nguyên là chỉ số lỗ mà tia sáng ra ngoài nếu nó đi vào từ lỗ số ~i~.
Output
- Dòng ~1 \dots M~: mỗi dòng chứa ~N~ số, số thứ ~j~ trong dòng thứ ~i~ là ~1~ nếu ô nằm ở hàng ~i~ và cột ~j~ của hộp có gương, hoặc ~0~ nếu ô ~(i, j)~ trống. Dữ liệu đảm bảo có nghiệm.
Sample Input 1
2 3
9
10
8
7
6
5
4
3
1
2
Sample Output 1
0 1 1
1 1 1
Bình luận