มีแผงหลอดไฟขนาด N×N อยู่แผงหนึ่ง หลอดไฟแต่ละดวงจะมีสถานะเป็นเปิดหรือปิด อย่างใดอย่างหนึ่ง และบนหลอดไฟแต่ละดวงจะมีสวิตช์ติดอยู่ ในการสับสวิตช์แต่ละครั้ง จะทำให้หลอดไฟดวงนั้น และดวงที่อยู่ติดกับดวงนั้น ในด้านบน ด้านล่าง ด้านซ้าย และด้านขวา เกิดการเปลี่ยนแปลงสถานะ (จากเปิดเป็นปิด หรือจากปิดเป็นเปิด)
งานของคุณ
จงเขียนโปรแกรมเพื่อรับสถานะเริ่มต้นและสถานะที่ต้องการของหลอดไฟแต่ละดวง แล้วทำการสับสวิตช์ให้หลอดไฟแต่ละดวงมีสถานะตามที่ต้องการ โดยจะสับสวิตช์กี่ตัวก็ได้ แต่สวิตช์แต่ละตัวจะสับได้ไม่เกิน 1 ครั้ง
ข้อมูลนำเข้า
บรรทัดแรกระบุจำนวนเต็ม N (2 ≤ N ≤ 15) แทนจำนวนแถวและหลักของแผงหลอดไฟ
อีก N บรรทัดต่อมา ระบุเลข 0 หรือ 1 บรรทัดละ N ตัว แทนสถานะเริ่มต้นของหลอดไฟแต่ละดวง โดย 0 แทนปิด และ 1 แทนเปิด
อีก N บรรทัดต่อมา ระบุเลข 0 หรือ 1 บรรทัดละ N ตัว แทนสถานะที่ต้องการของหลอดไฟแต่ละดวง โดย 0 แทนปิด และ 1 แทนเปิด
ข้อมูลส่งออก
บรรทัดแรกระบุจำนวนเต็ม K แทนจำนวนครั้งของการสับสวิตช์
อีก K บรรทัดต่อมาระบุจำนวนเต็ม x และ y บอกถึงการสับสวิตช์ในแถวที่ x หลักที่ y โดยให้เรียงตามค่า x จากน้อยไปหามาก หากค่า x เท่ากัน ให้เรียงตามค่า y จากน้อยไปหามาก
รับประกันว่าข้อมูลทดสอบทุกชุดจะมีคำตอบที่ถูกต้องเพียง 1 คำตอบเสมอ
การให้คะแนน
30% ของข้อมูลทดสอบ จะมี N ≤ 4
ที่มา
การแข่งขัน TUMSO ครั้งที่ 8
โจทย์โดย: สุธี เรืองวิเศษ
ตัวอย่างข้อมูลนำเข้า | ตัวอย่างข้อมูลส่งออก |
3 0 1 0 0 0 0 0 1 0 0 0 0 0 1 1 1 1 0 | 2 2 2 3 1 |
3 1 0 1 1 0 1 1 0 1 0 0 0 1 1 1 0 0 0 | 9 1 1 1 2 1 3 2 1 2 2 2 3 3 1 3 2 3 3 |