บทนำ
สำหรับวัตถุประสงค์ของการท้าทายนี้เราจะกำหนดเพื่อนบ้านขององค์ประกอบในตารางเมทริกซ์ (เช่น ) เป็นรายการทั้งหมดของ ที่อยู่ติดกันในแนวทแยงมุมแนวนอนหรือแนวตั้งเป็น (เช่นพวกเขา"ล้อมรอบ"โดยไม่ต้องล้อมรอบ)A E = A i , j A E
สำหรับ pedants คำนิยามอย่างเป็นทางการของเพื่อนบ้านของสำหรับ matixคือ (ดัชนี 0): โดยที่ n×n N ฉัน,E ฉัน,
สมมติว่าองค์ประกอบที่ indexอาศัยอยู่ในความเป็นศัตรูถ้ามันเป็น coprime กับเพื่อนบ้านทั้งหมด (นั่นคือ ) น่าเศร้ารายการที่น่าสงสารนี้ไม่สามารถยืมแม้แต่น้ำตาลสักถ้วยจากผู้อยู่อาศัยในบริเวณใกล้เคียงที่หยาบคาย ...
งาน
เรื่องราวที่เพียงพอ: รับสี่เหลี่ยมจตุรัสของจำนวนเต็มบวกเอาท์พุทหนึ่งดังต่อไปนี้
- รายการแบนขององค์ประกอบ (deduplicated หรือไม่) ระบุรายการทั้งหมดที่ครอบครองบางดัชนีในเช่นเพื่อนบ้านเป็นศัตรู
- บูลีนเมทริกซ์ที่มีวินาทีที่ตำแหน่งที่เพื่อนบ้านเป็นศัตรูและอย่างอื่น (คุณสามารถเลือกค่าที่สอดคล้องอื่น ๆ แทนและ )
- รายการคู่ของดัชนีที่แสดงถึงพื้นที่ใกล้เคียงที่เป็นมิตร
การใช้งานอ้างอิงใน Physica - รองรับไวยากรณ์Pythonและ I / O คุณสามารถนำเข้าและส่งออกผ่านวิธีการมาตรฐานและในรูปแบบที่เหมาะสมใด ๆ ในขณะที่ทราบว่าช่องโหว่เหล่านี้เป็นสิ่งต้องห้ามโดยค่าเริ่มต้น นี่คือโค้ดกอล์ฟดังนั้นโค้ดที่สั้นที่สุดเป็นไบต์ (ทุกภาษา) ชนะ!
ยิ่งกว่านั้นคุณสามารถใช้ขนาดเมทริกซ์เป็นอินพุตด้วยและสามารถใช้เมทริกซ์เป็นรายการแบบแบนได้เนื่องจากมันจะเป็นรูปสี่เหลี่ยมจัตุรัสเสมอ
ตัวอย่าง
พิจารณาเมทริกซ์ต่อไปนี้:
เพื่อนบ้านที่เกี่ยวข้องของแต่ละองค์ประกอบคือ:
i j – E -> Neighbours | All coprime to E?
|
0 0 – 64 -> {10; 27; 22} | False
0 1 – 10 -> {64; 14; 27; 22; 32} | False
0 2 – 14 -> {10; 22; 32} | False
1 0 – 27 -> {64; 10; 22; 53; 58} | True
1 1 – 22 -> {64; 10; 14; 27; 32; 53; 58; 36} | False
1 2 – 32 -> {10; 14; 22; 58; 36} | False
2 0 – 53 -> {27; 22; 58} | True
2 1 – 58 -> {27; 22; 32; 53; 36} | False
2 2 – 36 -> {22; 32; 58} | False
และผลลัพธ์จะต้องเป็นหนึ่งในสิ่งต่อไปนี้:
{27; 53}
{{0; 0; 0}; {1; 0; 0}; {1; 0; 0}}
{(1; 0); (2; 0)}
กรณีทดสอบ
Input –> Version 1 | Version 2 | Version 3
[[36, 94], [24, 69]] ->
[]
[[0, 0], [0, 0]]
[]
[[38, 77, 11], [17, 51, 32], [66, 78, 19]] –>
[38, 19]
[[1, 0, 0], [0, 0, 0], [0, 0, 1]]
[(0, 0), (2, 2)]
[[64, 10, 14], [27, 22, 32], [53, 58, 36]] ->
[27, 53]
[[0, 0, 0], [1, 0, 0], [1, 0, 0]]
[(1, 0), (2, 0)]
[[9, 9, 9], [9, 3, 9], [9, 9, 9]] ->
[]
[[0, 0, 0], [0, 0, 0], [0, 0, 0]]
[]
[[1, 1, 1], [1, 1, 1], [1, 1, 1]] ->
[1, 1, 1, 1, 1, 1, 1, 1, 1] or [1]
[[1, 1, 1], [1, 1, 1], [1, 1, 1]]
[(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]
[[35, 85, 30, 71], [10, 54, 55, 73], [80, 78, 47, 2], [33, 68, 62, 29]] ->
[71, 73, 47, 29]
[[0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 1, 0], [0, 0, 0, 1]]
[(0, 3), (1, 3), (2, 2), (3, 3)]