No.3069 Invisible Speedrun
タグ : / 解いたユーザー数 97
作問者 : 👑


問題文
この問題はインタラクティブな問題(あなたが作成したプログラムとジャッジプログラムが標準入出力を介して対話を行う問題)です.
$N$ 行 $N$ 列のマス目があります.上から $i$ 行目,左から $j$ 列目のマスを,マス $(i, j)$ と表します.
このマス目のうち,マス $(1, 1)$ およびマス $(N, N)$ を除くマスのうち $1$ 個には,壁が置かれています.壁の置かれているマスは入力では与えられません.
$1$ 体のロボットが,マス $(1, 1)$ にあります.あなたの目標は,以下の $4$ 種類のコマンドを使用することで,このロボットをマス $(N, N)$ に動かすことです.
- コマンド下:今いるマスをマス $(i, j)$ としたときに,マス $(i + 1, j)$ が存在し,かつそのマスに壁がない場合に,マス $(i + 1, j)$ に移動する.そうでない場合,マス $(i, j)$ に留まる.
- コマンド右:今いるマスをマス $(i, j)$ としたときに,マス $(i, j + 1)$ が存在し,かつそのマスに壁がない場合に,マス $(i, j + 1)$ に移動する.そうでない場合,マス $(i, j)$ に留まる.
- コマンド上:今いるマスをマス $(i, j)$ としたときに,マス $(i - 1, j)$ が存在し,かつそのマスに壁がない場合に,マス $(i - 1, j)$ に移動する.そうでない場合,マス $(i, j)$ に留まる.
- コマンド左:今いるマスをマス $(i, j)$ としたときに,マス $(i, j - 1)$ が存在し,かつそのマスに壁がない場合に,マス $(i, j - 1)$ に移動する.そうでない場合,マス $(i, j)$ に留まる.
ただし,マス目は非常に暗く,あなたはロボットがコマンドの使用によって移動したかどうかを知ることができません.
$2N$ 回以内のコマンドの使用で,マス $(N, N)$ に到達してください.
なお,壁の置かれているマスはプログラムとジャッジシステムとの対話前に決定されます.
制約
- $N$ は整数
- $2 \leq N \leq 1000$
- 壁の置かれているマスはマス $(1, 1)$ およびマス $(N, N)$ ではない
入出力
この問題はインタラクティブな問題(あなたが作成したプログラムとジャッジプログラムが標準入出力を介して対話を行う問題)です.
最初に,$N$ が標準入力から与えられます.
$N$
次に,あなたは $2N$ 回以下コマンドを使用することができます.
コマンドを使用する場合は,コマンドの種類を $d$ として,以下の形式で出力してください.ここで,下,右,上,左の各コマンドを表す文字はそれぞれ D
, R
, U
, L
です.
$d$
各コマンドの使用後,その結果を表す値が以下の形式で標準入力から与えられます.
$v$
ここで,$v$ は整数で,
- $v = 0$ のとき,ロボットがまだマス $(N, N)$ に到達していないことを表します.
- $v = 1$ のとき,ロボットがマス $(N, N)$ に到達したことを表します.この入力を受け取った後,ただちにプログラムを終了してください.
- $v = -1$ のとき,制約に違反する出力を行ったか,コマンドの使用回数が $2N$ を超過したことを表します.この場合,プログラムは既に不正解と判定されているため,ただちにプログラムを終了してください.
特に,ロボットのいるマスの情報や,ロボットが移動したかどうかが入力から与えられないことに注意してください.
注意点
- 出力のたびに必ず標準出力を flush してください.そうしない場合,TLE になる可能性があります.
- 不正な出力が行われた場合,ジャッジの結果は不定です.
- $v = -1$ が入力として与えられた後に,プログラムをただちに終了しなかった場合,ジャッジの結果は不定です.
- $v = 1$ が入力として与えられた後には,プログラムをただちに終了してください.そうしなかった場合,ジャッジの結果は不定です.
サンプル
以下は,$N = 3$ であり,壁の置かれているマスが $(2, 3)$ の場合の,正解となる入出力例です.
入力 | 出力 | 説明 |
---|---|---|
3 |
$N = 3$ です. | |
D |
コマンド下を使用します.マス $(2, 1)$ は存在し,かつ壁が置かれていないため,マス $(2, 1)$ へ移動します. | |
0 |
まだマス $(3, 3)$ には到達していません. | |
D |
コマンド下を使用します.マス $(3, 1)$ は存在し,かつ壁が置かれていないため,マス $(3, 1)$ へ移動します. | |
0 |
まだマス $(3, 3)$ には到達していません. | |
R |
コマンド右を使用します.マス $(3, 2)$ は存在し,かつ壁が置かれていないため,マス $(3, 2)$ へ移動します. | |
0 |
まだマス $(3, 3)$ には到達していません. | |
R |
コマンド右を使用します.マス $(3, 3)$ は存在し,かつ壁が置かれていないため,マス $(3, 3)$ へ移動します. | |
1 |
マス $(3, 3)$ に到達しました.そのため,ここでプログラムを終了してください. |
$N = 3$ であり,壁の置かれているマスが $(2, 3)$ の場合の,不正解となる入出力例も示します.
入力 | 出力 | 説明 |
---|---|---|
3 |
$N = 3$ です. | |
R |
コマンド右を使用します.マス $(1, 2)$ は存在し,かつ壁が置かれていないため,マス $(1, 2)$ へ移動します. | |
0 |
まだマス $(3, 3)$ には到達していません. | |
R |
コマンド右を使用します.マス $(1, 3)$ は存在し,かつ壁が置かれていないため,マス $(1, 3)$ へ移動します. | |
0 |
まだマス $(3, 3)$ には到達していません. | |
R |
コマンド右を使用します.マス $(1, 4)$ は存在しないため,ロボットはマス $(1, 3)$ に留まったままです. | |
0 |
まだマス $(3, 3)$ には到達していません. | |
D |
コマンド下を使用します.マス $(2, 3)$ は存在しますが,壁が置かれているため,ロボットはマス $(1, 3)$ に留まったままです. | |
0 |
まだマス $(3, 3)$ には到達していません. | |
L |
コマンド左を使用します.マス $(1, 2)$ は存在し,かつ壁が置かれていないため,マス $(1, 2)$ へ移動します. | |
0 |
まだマス $(3, 3)$ には到達していません. | |
D |
コマンド下を使用します.マス $(2, 2)$ は存在し,かつ壁が置かれていないため,マス $(2, 2)$ へ移動します. | |
0 |
まだマス $(3, 3)$ には到達していません. | |
D |
コマンド下を使用します.マス $(3, 2)$ は存在し,かつ壁が置かれていないため,マス $(3, 2)$ へ移動します. | |
-1 |
コマンドの使用回数が $2N$ を超えていたため,$v = -1$ が入力から与えられました.この時点で,プログラムは既に不正解と判定されているため,プログラムを終了してください. |
提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。