挑戦
ロボットが可能な限り少ないステップで子猫を見つけるのに役立つ文字数による最短コード。
ゴルファー、これは危機の時です-子猫が行方不明になり、それを見つけるのはロボットの仕事です!ロボットは最短距離で子猫に到達する必要があります。しかし、ロボットのやり方には多くの障害があり、彼はあなたに彼のために解決策をプログラムする必要があります。
以前はロボットがプログラムを実行させていましたが、そのプログラムは失われ、ロボットにはバックアップがありません:(。
ロボットのランタイムは最適ではなく、ロボットがソースコードから読み取る必要のある文字数が少なく、処理に費やす時間が最短であるため、子猫がより早く見つかります。
ロボットのメモリには、現在の場所の地図が含まれており、上部は北、下部は南、右は東、左は西を表しています。ロボットは常に、壁に囲まれた未知のサイズの長方形の部屋にあり、#
レーダーマップで表されています。ロボットが入ることができる領域は、スペースで表されます。
ロボットのレーダーは、部屋の多くの障害物もスキャンし、さまざまなASCII文字でマークします。ロボットはこれらの障害物を横断できません。レーダーは子猫を特別なASCII文字としてマークし、K
ロボットの位置はでマークされR
ます。
ロボットのナビゲーションシステムはこのように動作します。彼は、移動する方向と移動ユニットの数のデュオを理解できます。たとえば、N 3
「北3移動ユニット」を意味します。ロボットのレーダーマップは、移動単位が1つのASCII文字になるように作成されます。ロボットは4方向にのみ移動でき、斜めに移動することはできません。
勇敢な子猫セーバーであるあなたの仕事は、ロボットのレーダーマップを1回読み取り、最小の移動単位移動距離で、最小量の方向を出力することです。ロボットには、子猫へのパスが少なくとも1つあることが保証されています。
ロボットが子猫を見つけるのに役立たない誤動作プログラムを実行する時間を無駄にしないように、勇敢な子猫のセーバー、ロボットの過去のプログラムのこの出力を使用して、子猫を見つけるのに時間を無駄にしないことをお勧めします!
テストケース
Input:
######################
# d 3 Kj #
# #
# R #
# q #
######################
Output:
E 13
N 2
Input:
######################
# d r 3 Kj #
# p p #
# T X #
# q s t #
# #
# R o d W #
# #
# g t U #
# #
######################
Output:
N 1
E 10
N 4
E 2
Input:
######################
# spdfmsdlwe9mw WEK3#
# we hi #
# rdf fsszr#
# sdfg gjkti #
# fc d g i #
# dfg sdd #
# g zfg #
# df df #
# xcf R#
######################
Output:
N 1
W 9
N 5
E 4
N 1
E 4
N 1
コードカウントには、入力/出力(プログラム全体)が含まれます。