ให้นิยามเมทริกซ์ของ 9s เป็น:
ให้กำหนดหมายเลขการระเบิดเป็นตัวเลขที่ตำแหน่งที่สามารถแยกย่อยเป็นจำนวนเต็มเท่ากันระหว่างเพื่อนบ้านที่อยู่ติดกันทั้งหมด (รวมถึงตัวเอง) และค่าสัมบูรณ์ของแต่ละส่วนนั้นมากกว่า 0
จากเมทริกซ์ก่อนหน้าให้ปล่อยตัวเลขที่ตำแหน่ง (0 ดัชนี)
บางครั้งการแยกย่อยผลลัพธ์เป็นจำนวนตรรกยะที่มากกว่า 1 นี่คือสิ่งที่เราต้องหลีกเลี่ยงเมื่อระเบิดตัวเลข ในกรณีนี้ส่วนที่เหลือจะถูกกำหนดให้กับหมายเลขที่ถูกระเบิด
หากต้องการสาธิตให้เราทำงานกับเมทริกซ์ก่อนหน้าของเราต่อไป ครั้งนี้เราจะระเบิดตัวเลขที่ตำแหน่ง
ที่นี่เรามี 3 เพื่อนบ้านและจำนวนของตัวเอง สมการนี้คืออะไรเช่นซึ่งให้2กับเราสำหรับ2และเหลือ 2
เช่นกันบางครั้งตัวเลขจะไม่ใหญ่พอที่จะย่อยสลายในส่วนที่เท่ากัน (ที่ abs มากกว่า 0) ระหว่างเพื่อนบ้านของเขา (| จำนวนตรรกยะ | <1) ในกรณีนี้เราต้อง"กู้"จากหมายเลขระเบิดในการสั่งซื้อเพื่อรักษา"มากกว่า 0"สภาพ ให้ดำเนินการกับตัวอย่างก่อนหน้านี้ของเราและระเบิดจำนวนที่ตำแหน่ง(1,1)
ความท้าทายคือให้รายการของตำแหน่งและอาเรย์ที่ไม่ว่างเปล่าของจำนวนธรรมชาติส่งคืนรูปแบบการระเบิดหลังจากที่แต่ละหมายเลขจากรายการตำแหน่งถูกระเบิด
กรณีทดสอบ
การป้อนข้อมูล: initial matrix: [[3, 3, 3], [3, 3, 3], [3, 3, 3]], numbers: [[0,0],[0,1],[0,2]]
เอาท์พุท: [[1, 0, 1], [5, 6, 5], [3, 3, 3]]
การป้อนข้อมูล: Initial matrix: [[9, 8, 7], [8, 9, 7], [8, 7, 9]], numbers: [[0,0],[1,1],[2,2]]
เอาท์พุท: [[4, 11, 8],[11, 5, 10],[9, 10, 4]]
การป้อนข้อมูล: Initial matrix: [[0, 0], [0, 0]], numbers: [[0,0],[0,0],[0,0]]
เอาท์พุท: [[-9, 3],[3, 3]]
การป้อนข้อมูล: Initial Matrix: [[10, 20, 30],[30, 20, 10],[40, 50, 60]], numbers: [[0,2],[2,0],[1,1],[1,0]]
เอาท์พุท: [[21, 38, 13], [9, 12, 21], [21, 71, 64]]
การป้อนข้อมูล: Initial Matrix: [[1]], numbers: [[0,0]]
เอาท์พุท: [[1]]
การป้อนข้อมูล: Initial Matrix: [[1, 2, 3]], numbers: [[0,0], [0, 1]]
เอาท์พุท: [[1, 1, 4]]
หมายเหตุ
คุณสามารถสมมติว่าอินพุตเมทริกซ์จะไม่ว่างเปล่า
คุณสามารถสันนิษฐานได้ว่าพิกัดนั้นจะถูกต้องเสมอ
ป้อนค่า coord ในกรณีทดสอบให้เป็น (แถว, คอลัมน์) หากคุณต้องการให้เป็น (x, y) คุณสามารถสลับค่าได้ ถ้าเป็นเช่นนั้นโปรดระบุว่าในคำตอบของคุณ