QOJ.ac

QOJ

حد الوقت: 2.0 s حد الذاكرة: 256 MB مجموع النقاط: 100 تفاعلية

#18099. 硬幣遊戲

الإحصائيات

這是一個互動式問題。

Taja 可以輕鬆贏得這個遊戲,但她的朋友們卻做不到。現在她邀請你來玩這個遊戲。

遊戲設備包含一個 $n \times n$ 的場地 ($5 \le n \le 40$)、一枚棋子、兩枚硬幣(COIN1, COIN2)、兩顆帶有方位方向的骰子(DICE1, DICE2),以及許多大小為一個單元格的方塊。

名稱 面數
COIN1. 移動硬幣 2 SLIDE, RAM
COIN2. 修改硬幣 2 PLACE, REMOVE
DICE1. 第一顆方向骰子 4 N (北), S (南), W (西), E (東)
DICE2. 第二顆方向骰子 8 N (北), S (南), W (西), E (東), NW (西北), NE (東北), SW (西南), SE (東南)

在遊戲開始前,棋子和一些方塊會被放置在場地上。接著玩家進行此類移動。首先,玩家選擇一枚硬幣並投擲它以決定動作。然後選擇一顆骰子並投擲它以決定方向 $dir$。之後會發生以下四種動作之一:

硬幣字串 動作
SLIDE 沿著 $dir$ 方向在空單元格上移動棋子,直到棋子撞到方塊或迷宮邊界。
RAM 沿著 $dir$ 方向在空單元格上移動棋子,直到撞到第一個方塊。然後將棋子和該方塊沿相同方向移動,直到移動的方塊撞到另一個方塊或場地邊界。
PLACE 如果 $dir$ 方向上棋子旁邊的相鄰單元格為空且在場地內,則在此單元格放置一個方塊。
REMOVE 如果 $dir$ 方向上棋子旁邊的相鄰單元格包含一個方塊且在場地內,則移除該單元格上的方塊。

遊戲目標是將棋子移動到終點單元格。此問題的一次查詢包含一次硬幣投擲和一次骰子投擲。

互動協定

首先,互動器會給出迷宮大小、迷宮內容以及終點單元格的座標。接著進行以下 4 步驟動作:

  1. 評測程式顯示棋子的座標,或通知棋子已到達終點單元格。
  2. 你的程式顯示硬幣名稱。
  3. 評測程式顯示硬幣上的動作名稱。
  4. 你的程式顯示骰子名稱。
  5. 評測程式顯示骰子上的方向名稱以及 RAM 動作的額外資訊。

輸入格式

標準輸入的第一行包含一個整數 $n$ — 迷宮的大小。接下來 $n$ 行包含 $n$ 個字元 . (ASCII 46) 或 # (ASCII 35),分別表示空單元格和有方塊的單元格。 下一行包含兩個整數 $r_f$ 和 $c_f$ — 終點單元格的列號和行號。左上角為 $(1, 1)$,右下角為 $(n, n)$。終點單元格和初始單元格皆為空。 接下來的群組描述每次移動:

  • 群組的第一行包含兩個整數 $r, c$ — 棋子的列號和行號,若棋子到達終點則為 $(-1, -1)$。
  • 下一行包含硬幣上顯示的動作名稱。
  • 下一行包含骰子上顯示的方向名稱。
  • 如果當前動作為 "RAM",接下來的兩個字串包含兩個整數 $r_1, c_1$ 和 $r_2, c_2$,表示棋子撞到了座標為 $(r_1, c_1)$ 的方塊,並將該方塊移動到單元格 $(r_2, c_2)$。

北方向對應列號減少。南方向對應列號增加。西方向對應行號減少。東方向對應行號增加。 硬幣或骰子的每一面出現機率相同。

輸出格式

標準輸出應包含一對行:硬幣名稱和骰子名稱。硬幣名稱為字串 "COIN1""COIN2"。骰子名稱為字串 "DICE1""DICE2"。 請記得在列印每一行後刷新標準輸出。

範例

輸入格式 1

5
#....
.....
.....
.....
..#..
4 3
1 5
PLACE
W
1 5
RAM
S
6 5
6 5
5 5
RAM
W
5 3
5 1
5 2
PLACE
NE
5 2
RAM
NE
4 3
2 5
3 4
REMOVE
NE
3 4
PLACE
S
3 4
SLIDE
W
3 1
RAM
S
5 1
5 1
4 1
SLIDE
E
-1 -1

輸出格式 1

COIN2
DICE1
COIN1
DICE1
COIN1
DICE1
COIN2
DICE2
COIN1
DICE2
COIN2
DICE2
COIN2
DICE1
COIN1
DICE1
COIN1
DICE1
COIN1
DICE1

範例迷宮的初始狀態

路徑的表示如下:

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.