#P9609. [CERC2019] Crimson Sexy Jalapeños(征集交互库/SPJ)
[CERC2019] Crimson Sexy Jalapeños(征集交互库/SPJ)
题目背景
题目译自 CERC 2019 「Crimson Sexy Jalapeños」
题目描述
这是一道 IO 交互题。
受污染的巧克力游戏的核心是一个经典的巧克力块,由平行于巧克力块两侧的矩形凹槽网格划分成小方块。一些小方块被极度苦涩的物质污染,(几乎)无法消化。
这场比赛由两名选手轮流进行。在一个有效的动作中,一名玩家必须吃掉巧克力块的一部分。允许将当前的巧克力块沿着其中一个凹槽分成两个较小的巧克力块,然后只吃其中一个。玩家如果吃掉了至少含有一个受污染方块的巧克力块,则输掉游戏。
所有被污染的方块的位置在游戏开始时都是已知的。所有其他的方块都可以安全食用。每个玩家都会尽量避免吃一个含有一个或多个受污染方块的巧克力块,因为当这种情况发生时,玩家会不由自主地做出他们个人最厌恶的鬼脸,这会给其他玩家和其他观看比赛的人带来极大的乐趣。
在这个问题上,你要写一个程序来玩“受污染的巧克力”游戏。我们忽略了代码中模拟玩家扮鬼脸和吃巧克力的部分,而只关注获胜的动作。
输入格式
输入的第一行包含整数 。 是行数, 是列数, 是巧克力块中被污染的方块数。
接下来 行,每行包含两个整数 和 ,代表受污染方块的坐标。左上角正方形的坐标为 。
其余的输入取决于你的输出。对于你的每一个有效动作,交互库都会给出一行输入,包含对手的有效动作描述或表示对手输掉比赛的字符串 yuck!
。在后一种情况下,你的程序应该结束。
输出格式
读入巧克力棒的描述后,你可以决定是否要开始游戏。如果你想选择后手,输出一行,包含字符串 pass
。这个特殊的字符串只能出现在输出的第一行。
在选择先后手后,对于你的每个动作,输出一行,包含有效动作的描述。如果你的程序输出了一行非有效动作的任何其他内容,那么你的程序将会判为 Wrong Answer
。
在每次输出动作的描述后,清空缓冲区。例如,你可以使用:
- 对于 :
fflush(stdout)
或cout.flush()
; - 对于 :
System.out.flush()
; - 对于 :
stdout.flush()
。
4 6 2
2 3
4 4
right 2
yuck!
top 1
left 2
3 5 1
2 3
left 1
left 1
right 1
yuck!
pass
right 1
top 1
bottom 1
提示
样例格式说明
为了方便说明程序和交互库的交互顺序,样例格式填充了空行。请注意实际交互过程中不会输出空行。