Diberi kisi-kisi arah dan posisi awal dan akhir, tentukan jumlah minimum penggantian dalam kisi arah yang perlu dibuat untuk menyelesaikan jalur antara dua titik. Kisi-kisi adalah dua silinder. Ini lebih jelas diberi contoh.
Contoh
Mari kita ambil kotak berikut sebagai contoh:
>>>>v
>>>><
<<<<<
Mari kita mulai dari (1, 1)
dan berakhir pada (1, 3)
( di mana koordinat berada (x, y)
atau (col, row)
, dengan baris atas dan kolom kiri berada 1
). Kemudian, satu solusi yang mungkin adalah mengganti (1, 1)
and (1, 2)
dengan v
, sehingga kisi terakhir terlihat seperti ini:
v>>>v
v>>><
<<<<<
Mulai dari (1, 1)
, jalan menuju kita (1, 3)
. Namun, ada solusi yang lebih pendek, yang akan diganti (5, 2)
dengan v
, jadi kisi terakhir adalah ini:
>>>>v
>>>>v
<<<<<
Mulai dari (1, 1)
, jalan yang agak panjang menuju (1, 3)
.
Mengganti apa pun di baris atas dengan ^
karya juga (terima kasih @Spitemaster).
Memasukkan
Input akan terdiri dari kisi-kisi empat kemungkinan nilai, serta dua koordinat. Anda dapat mengambil kotak dalam format apa pun yang masuk akal; misalnya, karakter atau matriks integer, daftar string, dll. Anda juga dapat meminta dimensi kisi. Anda dapat mengambil koordinat dalam format apa pun yang wajar; misalnya, pasangan bilangan bulat, bilangan kompleks, dll. Anda dapat memilih pengindeksan 0 atau 1.
Keluaran
Output harus berupa bilangan bulat tunggal, jumlah minimal penggantian grid yang diperlukan untuk menutup jalur dari awal hingga akhir.
Aturan dan Spesifikasi
- Celah Standar Berlaku
- kisi-kisi itu berlipat ganda, artinya bergerak ke atas dari atas ke bawah, kiri dari kiri ke kanan, dll.
Contoh Kasus
Kasus sampel diberikan sebagai matriks karakter dan koordinat 1-diindeks.
Kasus 1
Memasukkan
>>>>v
>>>><
<<<<<
1 1
1 3
Keluaran
1
Penjelasan
Lihat contoh.
Kasus 2
Memasukkan
<<<<<
v>v>v
>>>>>
1 1
5 3
Keluaran
1
Penjelasan
Anda dapat mengganti (1, 1)
dengan v
atau (2, 1)
dengan v
. Dalam kasus pertama, mulai dari (1, 1)
, jalan lurus ke bawah dan kemudian ke kanan ke tujuan. Dalam kasus kedua, jalur loop dari kiri ke kanan, mencapai (2, 1)
, turun, kanan, bawah, dan kemudian kanan sampai menyentuh tujuan.
Kasus 3
Memasukkan
^^^^^^
><<>>>
vvvvvv
2 2
5 2
Keluaran
2
Penjelasan
Perubahan terbaik adalah membuat baris tengah membungkus kiri ke titik; yaitu, buat item pertama dan terakhir di baris tengah <
. Atau, buat 2 2
dan 3 2
keduanya >
.
Ini adalah tantangan kode-golf , jadi kode terpendek menang!
><
lakukan itu ping pong bolak-balik (sehingga kedua posisi tiba di) atau apakah seperti ada dinding di antara mereka?
^
atauv
.