马修喜欢解决难题。每当他设法解决一个问题时,他都会开心地跳来跳去。最近,他真的需要这样做,因为流星雨在他不想掉入的地面上开了坑和洞。
您将获得Matthew想要穿越的风景的一部分,希望最终健康。地面以米为单位,每个米要么是普通地面,要么是一个洞。当他跑步时,他设法跨过每一米。另一种选择是跳跃,每步跨越四米。Matthew从第一个地面电表的最左端开始,想要到达最后一个地面电表(不过,不要超出它-想象一下在景观中给出的最后一个电表以外的无尽洞口)。
输入值
输入在标准输入上以单行形式给出,并以换行符终止。该线由短划线(-
)或下划线(_
)组成,分别表示地面或孔距计。输入示例可以是:
----__--___---
给定的景观至少为一处,最长为30米,且始终从地面开始。
输出量
输出是在标准输出上给出的,表示对Matthew的一系列运动命令,即run(R
)或jump(J
)。如上所述,
奔跑命令使马修奔跑一米,而跳跃则使马修正向前进四米。对于上面给出的示例,可以进行以下移动:
RRJRJRR
大致如下所示:
如果没有通过景观的安全路径,!
则应打印一个感叹号()。
样本输入
--------
----__--___---
-_______
-_-_-_-_-_-
-
样本输出
JRRR
RRJRJRR
!
!
(最后的输出为空白,因为没有必要进行任何移动,但是我想Markdown无法解析它)
注意
只需一条可能的路径,因此程序输出不必与样本输出完全一致。只要给出解决方案(如果存在)并且每个移动命令都移动到地面并最终到达最后一个仪表,则输出有效。
标准错误的附加输出将被忽略。
获奖条件
最短的代码胜出,这是高尔夫界的惯例。如果出现平局,则以较早的解决方案为准。
测试用例
有两个测试脚本,包含相同的测试用例:
在这两种情况下都调用:<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 –普通Lisp
我们自己的解决方案是
- 92 –红宝石
- 124 – PowerShell
./test.sh perl jump.pl
-./test.sh: line 42: syntax error near unexpected token 'done'
在bash 3.2.48,