Matthew suka memecahkan teka-teki. Setiap kali dia berhasil menyelesaikannya, dia melompat-lompat dengan gembira. Baru-baru ini dia benar-benar perlu melakukan ini karena hujan meteor telah membuka kawah dan lubang di tanah di mana dia tidak ingin jatuh.
Anda diberi bagian pemandangan yang ingin diseberangi oleh Matthew, semoga pada akhirnya akan menjadi sehat. Tanah diberikan dalam meter, dengan masing-masing meter baik tanah normal atau lubang. Ketika dia berlari dia berhasil menyeberang satu meter per langkah; alternatifnya adalah melompat yang melintasi empat meter per langkah. Matius dimulai di paling kiri pada meteran pertama dan ingin sampai ke yang terakhir (tidak melampauinya - bayangkan saja lubang tak berujung di luar meter terakhir yang diberikan dalam lanskap).
Memasukkan
Input diberikan sebagai satu baris pada input standar, diakhiri oleh satu baris. Garis terdiri dari tanda hubung ( -
) atau garis bawah ( _
), masing-masing mewakili meteran tanah atau lubang. Input sampel dapat berupa:
----__--___---
Lanskap yang diberikan setidaknya satu dan paling panjang 30 meter dan selalu dimulai dengan tanah.
Keluaran
Output diberikan pada output standar dan mewakili serangkaian perintah gerakan ke Matthew, baik run ( R
) atau jump ( J
). Seperti disebutkan di atas,
perintah jalankan menyebabkan Matius berlari satu meter sementara melompat membawanya ke depan tepat empat meter. Untuk contoh yang diberikan di atas, gerakan berikut dimungkinkan:
RRJRJRR
yang terlihat kira-kira sebagai berikut:
Jika tidak ada jalur aman melalui lanskap, maka tanda seru tunggal ( !
) harus dicetak.
Input sampel
--------
----__--___---
-_______
-_-_-_-_-_-
-
Output sampel
JRRR
RRJRJRR
!
!
(output terakhir kosong karena tidak ada gerakan yang diperlukan, tapi saya kira, penurunan harga tidak dapat menguraikan ini)
Catatan
Hanya satu jalur yang mungkin diperlukan, sehingga keluaran program tidak harus benar-benar sesuai dengan keluaran sampel. Selama solusi diberikan jika ada dan setiap perintah gerakan bergerak ke ground dan meter terakhir akhirnya tercapai, hasilnya valid.
Output tambahan pada kesalahan standar diabaikan.
Kondisi menang
Kode terpendek menang, seperti kebiasaan dalam golf. Dalam kasus seri, solusi sebelumnya menang.
Uji kasus
Ada dua skrip pengujian, yang berisi kasus pengujian yang identik:
- bash (Terima kasih kepada Ventero )
- PowerShell
Doa dalam kedua kasus:, <test script> <my program> [arguments]
misalnya ./test ruby jumprun.rb
atau ./test.ps1 ./jumprun.exe
.
Catatan lain
Tugas ini adalah bagian dari kontes golf yang diadakan di universitas saya selama 2011-W24. Nilai dan bahasa kontestan kami adalah sebagai berikut:
- 104 - Haskell
- 131 - Haskell
- 154 - C
- 170 - C
- 275 - VB.NET
- 286 - Common Lisp
Solusi kami sendiri adalah
- 92 - Ruby
- 124 - PowerShell
./test.sh perl jump.pl
-./test.sh: line 42: syntax error near unexpected token 'done'
, under bash 3.2.48