QOJ.ac

QOJ

Time Limit: 2 s Memory Limit: 512 MB Total points: 100 Interactive

#7721. 流问题

Statistics

这是一个交互式问题。

有一个 $2 \times n$ 的网格($2 \le n \le 1000$),行编号为 $0$ 到 $1$,列编号为 $0$ 到 $n-1$。网格中的每个单元格都有一个指向四个方向之一的流:上、下、左或右。网格中的流向形成一个连续的循环,可以是顺时针或逆时针。以下是顺时针流向网格的示例:

你正在进行一个两轮的游戏。在每一轮开始时,一个标记被放置在某个单元格上。你进行移动,并且在每次移动前,你都知道标记的当前位置。目标是从网格的左侧掉落一个标记,并从右侧掉落另一个标记。哪一轮使用哪一侧并不重要。网格的大小和流的方向是未知的,但预先固定。它们在两轮之间不会改变。

以下是可能的移动列表:

  1. 将标记移动到左侧、右侧或另一行的相邻单元格。如果没有这样的单元格,标记将从网格中掉落。
  2. 等待 $t$ 秒($0 \le t \le 2002$)。每一秒,标记都会根据当前单元格的流向移动到相邻单元格。

在每次移动前,你会得到标记的当前坐标。你被允许使用有限次数的移动。详情见下一节。

交互

在每次移动开始时,评测程序会打印一行,包含两个整数 $r$ 和 $c$:分别是标记当前的行和列。然后参与者的程序应输出一行,包含以下命令之一:

  • “left”:将标记向左移动。
  • “right”:将标记向右移动。
  • “switch”:将标记移动到对面的行。
  • “wait T”:等待 $T$ 秒。$T$ 是一个 $0$ 到 $2002$ 之间的整数。

在命令执行后,评测程序会打印单独的一行,内容为“yes”(如果标记从网格中掉落)或“no”(否则)。在第一个标记掉落后,第二轮开始,第二个标记进入游戏。在两个标记都从网格中掉落后,参与者的程序应终止。第二个标记应从与第一个标记掉落侧相反的一侧掉落。

限制如下:

  1. 第一轮中 leftrightwait 命令的总数不得超过 $4$。
  2. 第二轮中 leftrightwait 命令的总数不得超过 $3$。
  3. switch 命令在每一轮中只能使用一次。

样例

输入格式 1

0 5
no
1 5
no
1 18
no
1 19
yes
1 2
no
0 2
no
0 1
no
0 0
yes

输出格式 1

wait 11
wait 13
right
right
switch
left
left
left

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.