pengantar
Untuk keperluan tantangan ini, kita akan mendefinisikan tetangga dari elemen dalam matriks persegi (sedemikian sehingga ) sebagai semua entri yang berbatasan langsung secara diagonal, horizontal atau vertikal ke (yaitu mereka "mengelilingi" , tanpa membungkus).
Untuk para pendaki, definisi formal dari tetangga untuk sebuahmatixadalah (0-diindeks):
Katakanlah elemen pada indeks
Tugas
Cukup cerita: Diberikan matriks persegi dari bilangan bulat positif, hasilkan salah satu dari yang berikut:
- Daftar elemen yang datar (diduplikasi atau tidak) yang menunjukkan semua entri yang menempati beberapa indeks di M sedemikian rupa sehingga tetangga N_ {i, \: j} bermusuhan.
- Matriks boolean dengan s pada posisi di mana tetangga tidak bersahabat dan sebaliknya (Anda dapat memilih nilai konsisten lainnya sebagai pengganti dan ).
- Daftar pasangan indeks yang mewakili lingkungan yang tidak bersahabat.
Implementasi Referensi di Physica - mendukung sintaksis Python juga untuk I / O. Anda dapat mengambil input dan memberikan output melalui metode standar apa pun dan dalam format apa pun yang masuk akal, sambil memperhatikan bahwa celah ini dilarang secara default. Ini adalah kode-golf, jadi kode terpendek dalam byte (dalam setiap bahasa) menang!
Selain itu, Anda dapat mengambil ukuran matriks sebagai input juga dan juga dapat mengambil matriks sebagai daftar datar karena akan selalu persegi.
Contoh
Pertimbangkan matriks berikut:
Tetangga yang sesuai dari setiap elemen adalah:
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
Dan dengan demikian hasilnya harus salah satu dari yang berikut:
{27; 53}
{{0; 0; 0}; {1; 0; 0}; {1; 0; 0}}
{(1; 0); (2; 0)}
Uji kasus
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)]