防御は、窓から誰かまたは何かを投げる行為です。
— ウィキペディア
入力
入力は2つの部分で構成されます。
フロアプランと家/建物内の人。
v><^
は、矢印が示す方向を指している人を表します。入力には1人が含まれます。-
そして|
壁を表し、#
ウィンドウを表します。
入力のこの部分は、単一の文字列または配列/リスト/などとして取得できます。行の。末尾または先頭のスペースはありません。入力は常に長方形になります。
例:
-----###--- | | | ^ | -----------
人が移動する距離(文字数)を示す1以上の整数。
出力
出力は
1
人がウィンドウの「内側」にいる場合(つまり、入力で指定された距離だけ前方に移動した後、人はの上にいます#
)。2
人が衰弱している場合(a#
と連絡を取り、さらに先に進みます)。3
人が壁にぶつかった場合(-
またはに接触すると|
、壁にぶつかると、人は停止し、壁を通り抜けません)。0
上記のいずれにも当てはまらない場合(そして、人が行ったことはすべて空の空間を旅することです)。
仮定
次のすべてが真であると仮定できます。
その人は、入力領域の「範囲外」に移動することはありません。
defenestratedされた後、人は他に接触することはありません
#
か-
/|
(あなたがあれば心配する必要はありませんので2
及び1
または3
両方真です)。
テストケース
次の「フロアプラン」の場合:
-----
| |
|###|
| |
| ^ |
In Out
1 0
2 1
3 2
このフロアプランの場合:
> | # |
In Out
1 0
2-99 3 * that is, any input 2-99 outputs 3
このフロアプランの場合:
||####|#|#|##|<
In Out
any 3
最終テストケース:
|v|
|#|
| |
| |
| |
| |
In Out
1 1
2-5 2
7
この課題のタイトルを防御テストに
—
猫
追加の質問:これは、ピットの場合を除きます。
—
コナーオブライエン
CᴏɴᴏʀO'Bʀɪᴇɴ@
—
猫の
Has someone been for-sparta'd?
編集が拒否された理由):
—
cat
@cat他の人の質問に対する編集であるため、彼らは入力が必要です。
—
コナーオブライエン