Alphys, Ilmuwan Kerajaan Bawah Tanah, telah menyelesaikan prototipe untuk sebuah teka-teki baru. Namun, dia sepertinya tidak bisa menemukan orang yang mau mengujinya.
Aturan teka-tekinya adalah sebagai berikut:
Tujuannya adalah untuk sampai ke sisi kanan, mulai dari ubin paling tengah di sisi kiri. Untuk teka-teki dengan ketinggian bernomor genap, mulailah dari bagian bawah dari dua ubin tengah. (Contoh: Dalam array 4x4 yang diindeks nol, posisi awal adalah [2,0] - baris 2, kolom 0. Dalam array 5x5 yang diindeks nol, posisi awal adalah [2,0] - baris 2, kolom 0.)
Setiap ubin berwarna memiliki fungsi "sadis" sendiri:
- Ubin merah muda dan hijau (direpresentasikan sebagai "P" dan "G") tidak melakukan apa pun
- Ubin merah dan kuning ("R", "Y") tidak dapat dilewati.
- Ubin oranye ("O") membuat pemain berbau seperti jeruk
- Ubin ungu ("U") memaksa pemain ke ubin berikutnya ke arah yang mereka hadapi dan membuatnya berbau seperti lemon
- Ubin biru ("B") lumayan selama pemain tidak berbau seperti jeruk.
Untuk memperjelas mekanisme rasa, aroma pemain akan bertahan tanpa batas waktu atau sampai ditimpa oleh ubin berbau berbeda, yaitu jika pemain menginjak ubin oranye mereka akan berbau seperti jeruk sampai mereka menginjak ubin ungu.
Selain itu, ubin kuning yang ditempatkan secara vertikal atau horizontal berdekatan dengan ubin biru akan menyebabkan ubin biru menjadi tidak bisa dilewati juga.
Tugas Anda adalah menulis program atau fungsi yang menerima larik karakter 2 dimensi (atau larik string 1D, atau format valid lainnya) yang mewakili tata letak puzzle sebagai input dan output puzzle asli dan puzzle yang dipecahkan, dengan tanda bintang atau beberapa karakter lain yang menunjukkan jalur yang benar. Asumsikan bahwa teka-teki yang diberikan dapat dipecahkan.
Gunakan puzzle ini sebagai contoh:
BGYBG
PGPBG
PUBPB
OUGYB
PPOPP
Program Anda akan menampilkan:
BGYBG
PGPBG
PUBPB
OUGYB
PPOPP
BGYBG
PGPBG
*****
OUGYB
PPOPP
Setiap puzzle yang digunakan harus dihasilkan menggunakan ini .
Aturan golf kode standar berlaku. Jawaban terbaik akan menjadi yang terpendek untuk setiap bahasa. Jawaban harus berisi bahasa, jumlah byte, dan tiga kasus uji. Dua yang pertama bisa berupa tata letak yang Anda pilih, tetapi yang ketiga harus:
RRRR
RPPR
PUOR
RPBP
sumber
Jawaban:
C 529 byte
Kami mendekati teka-teki dengan melangkah pertama ke kanan, asalkan kami tidak terhalang, lalu mencoba naik, lalu turun dan akhirnya kembali ke kiri. Pencarian bersifat rekursif dan setelah kami mengidentifikasi jalur yang berhasil, kami menandai spasi di matriks kami dan kembali.
Cobalah secara Online
Tidak disatukan
Contoh Output 1
Contoh Output 2
Contoh Output 3
sumber