Di kerajaan yang jauh, seorang ratu catur berjalan-jalan setiap hari melintasi jalan spiral, dinomori dari 1 hingga n
, tidak peduli untuk mengikuti spiral itu sendiri, tetapi hanya membuat gerakan ratu seperti yang ia lakukan di papan catur. Sang ratu dicintai oleh rakyatnya, dan mereka membuat catatan setiap kotak yang dia kunjungi di jalannya. Mengingat bahwa sang ratu dapat memulai perjalanannya di alun-alun mana saja dan mengakhirinya di alun-alun mana saja, apa jalan ratu terpendek yang bisa dia ambil?
Tantangan
Diberikan spiral bilangan bulat pada kotak persegi panjang, tulis fungsi yang mengembalikan salah satu jalur terpendek yang mungkin (dihitung berdasarkan jumlah sel yang ditempuh) antara dua angka pada grid spiral ini menggunakan gerakan ratu catur.
Misalnya, dari 16
ke 25
:
25 10 11 12 13
24 9 2 3 14
23 8 1 4 15
22 7 6 5 16
21 20 19 18 17
Beberapa jalur yang mungkin termasuk 16, 4, 2, 10, 25
dan 16, 5, 1, 9, 25
.
Aturan
- Input akan berupa dua bilangan bulat positif.
- Outputnya akan berupa jalur bilangan bulat (termasuk kedua titik akhir) melintasi spiral hanya menggunakan gerakan ortogonal dan diagonal.
- Panjang jalan dihitung oleh jumlah sel yang ditempuh.
- Jawaban Anda mungkin sebuah program atau fungsi.
- Ini adalah kode golf, sehingga jumlah byte terkecil menang.
Seperti biasa, jika masalahnya tidak jelas, beri tahu saya. Semoga berhasil dan bermain golf dengan baik!
Uji kasus
>>> queen_spiral(4, 5)
4, 5
>>> queen_spiral(13, 20)
13, 3, 1, 7, 20
>>> queen_spiral(14, 14)
14
>>> queen_spiral(10, 3)
10, 11, 3
>>> queen_spiral(16, 25)
16, 4, 2, 10, 25
>>> queen_spiral(80, 1)
80, 48, 24, 8, 1