マシューはパズルを解くのが好きです。彼がなんとか解決しようとするたびに、彼は喜んでスキップします。最近、彼は本当にこれをする必要があります、流星群が地面に彼が落ちたくないクレーターと穴を開けたので。
あなたは、マシューが横断したい風景の一部を与えられ、うまくいけば最後に健康に到着します。地面はメートル単位で与えられ、各メートルは通常の地面または穴のいずれかです。彼が走っているとき、彼はなんとかステップごとに1メートルを越えることができます。別の方法は、ステップごとに4メートルを超えるジャンプです。マシューは最初の地上メーターの一番左から始まり、最後のメーターまで行きたいと思っています(ただし、それ以上ではありません。風景の最後のメーターを超えて無限の穴を想像してください)。
入力
入力は、改行で終了する標準入力の単一行として指定されます。線はダッシュ(-
)またはアンダースコア(_
)で構成され、それぞれ地面または穴のメーターを表します。サンプル入力は次のとおりです。
----__--___---
指定されたランドスケープは少なくとも1メートル、最大で30メートルの長さで、常に地面から始まります。
出力
出力は標準出力で提供され、Matthewへの一連の移動コマンド(run(R
)またはjump(J
))を表します。上記のように、
実行コマンドによりマシューは1メートル走り、ジャンプすると正確に4メートル前進します。上記の例では、次の移動が可能です。
RRJRJRR
おおよそ次のようになります。
ランドスケープを通る安全なパスがない場合は、感嘆符(!
)を1つ印刷する必要があります。
サンプル入力
--------
----__--___---
-_______
-_-_-_-_-_-
-
サンプル出力
JRRR
RRJRJRR
!
!
(最後の出力は移動する必要がないため空白ですが、Markdownはこれを解析できないと思います)
注意
単一の可能なパスのみが必要であるため、プログラム出力はサンプル出力に正確に一致する必要はありません。ソリューションが存在し、すべての移動コマンドが地面に移動し、最終的に最後のメーターに到達した場合にソリューションが提供される限り、出力は有効です。
標準エラーの追加出力は無視されます。
勝利条件
ゴルフで通例であるように、最短のコードが勝ちます。同点の場合、以前のソリューションが優先されます。
テストケース
同じテストケースを含む2つのテストスクリプトがあります。
呼び出しはどちらの場合でも:<test script> <my program> [arguments]
、./test ruby jumprun.rb
または./test.ps1 ./jumprun.exe
。
別のメモ
このタスクは、2011〜W24の間に私の大学で開催されたゴルフコンテストの一部でした。出場者のスコアと言語は次のとおりです。
- 104 –ハスケル
- 131 –ハスケル
- 154 – C
- 170 – C
- 275 – VB.NET
- 286 – Common Lisp
私たち自身のソリューションは
- 92 –ルビー
- 124 – PowerShell
./test.sh perl jump.pl
-./test.sh: line 42: syntax error near unexpected token 'done'
bashの3.2.48の下で、