Saatnya untuk tantangan labirin lain, tetapi tidak seperti yang Anda tahu.
Aturan untuk tantangan ini sedikit berbeda dari kebanyakan tantangan labirin. Jenis ubin didefinisikan sebagai berikut:
S
: Lokasi di labirin tempat Anda memulaiE
: Lokasi yang Anda coba tuju0
: Dinding yang tidak bisa Anda lewati+
: Lantai yang bisa Anda lewati
Anda dapat melakukan perjalanan di salah satu dari enam arah: ke kiri, ke kanan, kiri, kanan, kiri bawah, atau kanan bawah.
\ /
-S-
/ \
Labirin tidak terbungkus. Tujuannya adalah untuk menemukan string jalur terpendek untuk didapatkanS
ke E
.
Memasukkan:
Input adalah spasi yang dipisahkan garis seperti labirin yang ditampilkan. Tidak ada spasi tambahan yang akan mengikuti garis.
Keluaran:
Serangkaian R
, L
dan F
di mana
R
memutar Anda ke kanan (searah jarum jam) 60 derajatL
memutar Anda ke kiri (berlawanan arah jarum jam) 60 derajatF
menggerakkan Anda satu ruang ke arah yang Anda tunjuk
Anda mulai menunjuk left-up
Jalur terpendek dihitung oleh panjang string yang dihasilkan, bukan jumlah posisi yang dikunjungi. Program Anda harus mencetak jalur terpendek sebagai solusinya.
Jika labirin tidak dapat dipecahkan, Anda harus menampilkannya Invalid maze!
.
( >>>
adalah output)
0 0 0 0
0 + 0 + 0
0 0 0 + + 0
0 + 0 + 0 + 0
0 0 + + 0 0 + 0
0 0 + 0 + 0 0 + 0
E 0 + 0 0 + + 0
+ + 0 + 0 + 0
0 0 0 0 0 +
+ 0 + + +
0 S 0 0
>>>RFRFFLFLFRFFLFFFLFLFFRFLFLFRFRFRF
+ 0 0 0 0 0 0
0 0 0 0 0 + + 0
0 0 E 0 + 0 0 + 0
0 0 0 0 0 0 0 +
0 + 0 0 + + +
0 0 + + 0 0
S + 0 0 0
>>>Invalid maze!
0 E S
>>>LF
E + 0
0 + + +
0 0 S
+ +
>>>FFLF
E
0 +
0 + +
0 +
S
>>>RFFLFF
0 E + 0 0
0 + 0 0 + +
+ 0 + + + 0
+ 0 + 0 + 0
+ + + 0 S
>>>FFLFLFFRFRFFRFF
E 0 + + 0
0 + 0 + + 0
+ + + 0 + 0
+ 0 0 0 0 0
+ + + + 0
+ 0 S 0
>>>FLFFRFFRFLF
(Perhatikan bahwa beberapa labirin memiliki solusi lain yang panjangnya sama tetapi tidak tercantum di sini)