5
跳跃和奔跑
马修喜欢解决难题。每当他设法解决一个问题时,他都会开心地跳来跳去。最近,他真的需要这样做,因为流星雨在他不想掉入的地面上开了坑和洞。 您将获得Matthew想要穿越的风景的一部分,希望最终健康。地面以米为单位,每个米要么是普通地面,要么是一个洞。当他跑步时,他设法跨过每一米。另一种选择是跳跃,每步跨越四米。Matthew从第一个地面电表的最左端开始,想要到达最后一个地面电表(不过,不要超出它-想象一下在景观中给出的最后一个电表以外的无尽洞口)。 输入值 输入在标准输入上以单行形式给出,并以换行符终止。该线由短划线(-)或下划线(_)组成,分别表示地面或孔距计。输入示例可以是: ----__--___--- 给定的景观至少为一处,最长为30米,且始终从地面开始。 输出量 输出是在标准输出上给出的,表示对Matthew的一系列运动命令,即run(R)或jump(J)。如上所述, 奔跑命令使马修奔跑一米,而跳跃则使马修正向前进四米。对于上面给出的示例,可以进行以下移动: RRJRJRR 大致如下所示: 如果没有通过景观的安全路径,!则应打印一个感叹号()。 样本输入 -------- ----__--___--- -_______ -_-_-_-_-_- - 样本输出 JRRR RRJRJRR ! ! (最后的输出为空白,因为没有必要进行任何移动,但是我想Markdown无法解析它) 注意 只需一条可能的路径,因此程序输出不必与样本输出完全一致。只要给出解决方案(如果存在)并且每个移动命令都移动到地面并最终到达最后一个仪表,则输出有效。 标准错误的附加输出将被忽略。 获奖条件 最短的代码胜出,这是高尔夫界的惯例。如果出现平局,则以较早的解决方案为准。 测试用例 有两个测试脚本,包含相同的测试用例: bash(感谢Ventero) 电源外壳 在这两种情况下都调用:<test script> <my program> [arguments]例如./test ruby jumprun.rb或./test.ps1 ./jumprun.exe。 另一个注意 该任务是2011-W24期间在我的大学举行的高尔夫比赛的一部分。参赛者的成绩和语言如下: 104 –哈斯克尔 131 –哈斯克尔 154 – C …