คุณจะได้รับเมทริกซ์จตุรัสของจำนวนเต็มMและอีกจำนวนเต็มบวกnอย่างเคร่งครัดมีขนาดเล็กกว่าขนาดของM งานของคุณคือการสร้างทุกตารางย่อยของเมทริกซ์Mขนาดn
สำหรับวัตถุประสงค์ของการท้าทายนี้เป็นตารางย่อยเมทริกซ์เป็นกลุ่มที่อยู่ติดกันแถวและคอลัมน์ที่มีอยู่ในM
รูปแบบอินพุต / เอาต์พุต
คุณมีอิสระที่จะเลือกรูปแบบที่เหมาะสมอื่น ๆ เหล่านี้เป็นเพียงตัวอย่าง
อินพุต
- เมทริกซ์ในประเภทเมทริกซ์เนทีฟ (หากภาษาของคุณมี)
- อาร์เรย์ 2 มิติ (อาร์เรย์ 1D ของอาร์เรย์แต่ละแถวสอดคล้องกับหนึ่งแถว / หนึ่งคอลัมน์)
- อาร์เรย์ 1D (เนื่องจากเมทริกซ์เป็นจตุรัสเสมอ)
- สตริง (คุณเลือกการเว้นวรรค แต่โปรดอย่าใช้สิ่งนี้ในทางที่ผิด) ฯลฯ
เอาท์พุต
- เมทริกซ์ของเมทริกซ์
- อาเรย์ 4D ที่แต่ละองค์ประกอบ (รายการ 3D) แสดงเมทริกซ์ย่อยในแถว / คอลัมน์
- อาร์เรย์ 3 มิติที่แต่ละองค์ประกอบ (รายการ 2D) แสดงเมทริกซ์ย่อย
- การแทนค่าสตริงของเมทริกซ์ย่อยที่ได้เป็นต้น
รายละเอียด
- คุณอาจเลือกที่จะใช้ขนาดของMเป็นอินพุตเช่นกัน มันมีการประกันเพื่อมีอย่างน้อย2
- การวางแนวของเอาต์พุตนั้นโดยพลการ: คุณอาจเลือกที่จะเอาท์พุทเมทริกซ์ย่อยเป็นรายการของคอลัมน์หรือรายการของแถว แต่ตัวเลือกของคุณจะต้องสอดคล้องกัน
- คุณสามารถแข่งขันในภาษาการเขียนโปรแกรมใด ๆและสามารถรับอินพุตและให้เอาต์พุตผ่านวิธีการมาตรฐานใด ๆในขณะที่รับทราบว่าช่องโหว่เหล่านี้ถูกห้ามโดยค่าเริ่มต้น
- นี่คือรหัสกอล์ฟดังนั้นการส่งสั้นที่สุด (เป็นไบต์) สำหรับทุกภาษาที่ชนะ
ตัวอย่าง
รับn = 3และM :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
เมทริกซ์ย่อย3x3 ที่เป็นไปได้คือ:
+ ------- + + -------- + 1 2 3 4 1 2 3 4 | 1 2 3 | 4 1 | 2 3 4 | + -------- + + -------- + | 5 6 7 | 8 5 | 6 7 8 | | 5 6 7 | 8 5 | 6 7 8 | | 9 10 11 | 12 9 | 10 11 12 | | 9 10 11 | 12 9 | 10 11 12 | + ------- + + -------- + | 13 14 15 | 16 13 | 14 15 16 | 13 14 15 16 13 14 15 16 + -------- + + -------- +
ดังนั้นผลลัพธ์จะเป็น:
[[[1, 2, 3], [5, 6, 7], [9, 10, 11]], [[2, 3, 4], [6, 7, 8], [10, 11, 12]], [[5, 6, 7], [9, 10, 11], [13, 14, 15]], [[6, 7, 8], [10, 11, 12], [14, 15, 16]]]
ตามที่ระบุไว้ข้างต้นผลลัพธ์ของ:
[[[1, 5, 9], [2, 6, 10], [3, 7, 11]], [[2, 6, 10], [3, 7, 11], [4, 8, 12]], [[5, 9, 13], [6, 10, 14], [7, 11, 15]], [[6, 10, 14], [7, 11, 15], [8, 12, 16]]]
จะเป็นที่ยอมรับเช่นกันหากคุณเลือกที่จะส่งคืนเมทริกซ์ย่อยเป็นรายการของแถวแทน
กรณีทดสอบ
อินพุตM, n :
[[1,2,3],[5,6,7],[9,10,11]], 1
[[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]], 3
[[100,-3,4,6],[12,11,14,8],[0,0,9,3],[34,289,-18,3]], 2
[[100,-3,4,6],[12,11,14,8],[9,10,11,12],[13,14,15,16]], 3
และผลลัพธ์ที่สอดคล้องกัน (เมทริกซ์ย่อยที่กำหนดเป็นรายการของแถว):
[[[1]],[[2]],[[3]],[[5]],[[6]],[[7]],[[9]],[[10]],[[11]]]
[[[1,2,3],[5,6,7],[9,10,11]],[[2,3,4],[6,7,8],[10,11,12]],[[5,6,7],[9,10,11],[13,14,15]],[[6,7,8],[10,11,12],[14,15,16]]]
[[[100,-3],[12,11]],[[-3,4],[11,14]],[[4,6],[14,8]],[[12,11],[0,0]],[[11,14],[0,9]],[[14,8],[9,3]],[[0,0],[34,289]],[[0,9],[289,-18]],[[9,3],[-18,3]]]
[[[100,-3,4],[12,11,14],[9,10,11]],[[-3,4,6],[11,14,8],[10,11,12]],[[12,11,14],[9,10,11],[13,14,15]],[[11,14,8],[10,11,12],[14,15,16]]]
หรือตามรายการของคอลัมน์:
[[[1]],[[2]],[[3]],[[5]],[[6]],[[7]],[[9]],[[10]],[[11]]]
[[[1,5,9],[2,6,10],[3,7,11]],[[2,6,10],[3,7,11],[4,8,12]],[[5,9,13],[6,10,14],[7,11,15]],[[6,10,14],[7,11,15],[8,12,16]]]
[[[100,12],[-3,11]],[[-3,11],[4,14]],[[4,14],[6,8]],[[12,0],[11,0]],[[11,0],[14,9]],[[14,9],[8,3]],[[0,34],[0,289]],[[0,289],[9,-18]],[[9,-18],[3,3]]]
[[[100,12,9],[-3,11,10],[4,14,11]],[[-3,11,10],[4,14,11],[6,8,12]],[[12,9,13],[11,10,14],[14,11,15]],[[11,10,14],[14,11,15],[8,12,16]]]]