Kura-kura ingin bergerak di sepanjang grid untuk mendapatkan makanannya. Dia ingin tahu berapa banyak gerakan yang diperlukan baginya untuk sampai ke sana.
Selain itu karena dia lambat dia memiliki teleporter yang didirikan di sekitar domainnya yang akan dia gunakan jika jalurnya lebih pendek. Atau hindari jika itu memperpanjang jalannya.
Temui kura-kura
🐢
Kura-kura hidup di atas kisi
Kura-kura dapat pindah ke sembarang kotak ...
Namun, kura-kura tidak dapat bergerak ke bujur sangkar dengan gunung
Kura-kura ingin memakan Strawberry-nya, dan ingin tahu berapa lama untuk mencapai Strawberry-nya
Tantangan
Mengingat output konfigurasi grid awal jumlah gerakan itu akan mengambil kura-kura untuk mencapai strawberry-nya.
Aturan
Anda dapat berasumsi bahwa kisi input memiliki solusi
Setiap kotak hanya akan memiliki satu
strawberrydan duaportalsdan satuturtleKotak input dapat dimasukkan dalam format apa pun yang nyaman
Anda harus memperlakukan
teleportersitem sekali pakaiGiliran penyu yang bergerak ke
teleporterkotak dia sudah di sesuaiteleporter. Dia tidak pernah pindah keteleporterdan tinggal di sana untuk bergerakJalur terpendek tidak perlu menggunakan portal
Kura-kura tidak bisa melewati ubin gunung
Anda dapat menggunakan karakter ASCII atau integer untuk mewakili
mountains,turtle,empty grid square,strawberryAnda dapat menggunakan karakter yang sama atau dua karakter ASCII yang berbeda atau bilangan bulat untuk mewakili
teleporterpasanganGrid dapat memiliki lebih dari satu jalur dengan panjang jalur terpendek yang sama
Ini adalah kode-golf
Klarifikasi terhadap Aturan
- Anda harus memperlakukan
teleportersitem sekali pakai.
Alasan : bahwa kasus:
Bisa hanya dipecahkan dengan memasukkan dan keluar portal dua kali. Pada saat membuat klarifikasi ini, kedua solusi bertindak dengan mengasumsikan bahwa keduanya adalah penggunaan tunggal, atau tidak ada alasan untuk mencoba kotak yang sebelumnya digunakan. Untuk menghindari pemecahan solusi kerja keras mereka, ini sepertinya cara terbaik untuk pengaturan ini. Oleh karena itu, ini akan dianggap sebagai grid yang tidak valid.
Kasus Uji diformat sebagai daftar
[ ['T', 'X', 'X', 'S', 'X'], ['X', 'X', 'X', 'X', 'X'], ['X', 'X', 'X', 'X', 'X'] ] --> 3
[ ['T', 'M', 'X', 'S', 'X'], ['X', 'M', 'X', 'X', 'X'], ['O', 'X', 'X', 'X', 'O'] ] --> 4
[ ['T', 'M', 'X', 'S', 'O'], ['O', 'M', 'X', 'X', 'X'], ['X', 'X', 'X', 'X', 'X'] ] --> 2
[ ['T', 'M', 'X', 'S', 'X'], ['O', 'M', 'X', 'X', 'X'], ['O', 'X', 'X', 'X', 'X'] ] --> 4
[ ['T', 'M', 'S', 'X', 'O'], ['X', 'M', 'M', 'M', 'M'], ['X', 'X', 'X', 'X', 'O'] ] --> 7
[ ['T', 'X', 'X', 'S', 'X'], ['O', 'M', 'M', 'M', 'X'], ['X', 'X', 'O', 'X', 'X'] ] --> 3
Test Case diformat untuk manusia
T X X S X
X X X X X
X X X X X --> 3
T M X S X
X M X X X
O X X X O --> 4
T M X S O
O M X X X
X X X X X --> 2
T M X S X
O M X X X
O X X X X --> 4
T M S X O
X M M M M
X X X X O --> 7
T X X S X
O M M M X
X X O X X --> 3
Kredit
Desain dan struktur melalui: Mouse lapar oleh Arnauld
Usulan Tantangan Sunting Saran: Kamil-drakari , beefster