luogu#P7356. 「PMOI-1」游戏
「PMOI-1」游戏
题目背景
大眼观察乃交互题第一要义
——command_block 《考前小贴士》
djy 的同桌和 djy 玩五子棋玩腻了,就发明了一个更无聊的新游戏,因为 djy 太菜了,所以你要帮这个蒟蒻想出必胜策略。
题目描述
这是一个 IO 交互题。
这个游戏在一个平面直角坐标系的原点, 正半轴和第一象限中进行。
交互程序黑棋,你白棋,黑棋先开始,保证交互库第一步下 。黑白棋都只能下在 坐标都为自然数的点。
若出现横竖斜任意一个方向有连续的 黑白白白
,则白棋赢,若你用了 步胜利,且 ,你得到 占比的分数。
交互方式
先输入一个整数 表示进行 次游戏。
接下来的 次游戏,执行以下过程:
第一步交互库走的 无需输入。
然后重复执行以下两步直到你下了 步棋或者你获胜:
1.你输出一行两个数 x y
,表示你下的棋的坐标是 。
2.你读入一行两个数 x y
,表示交互库下的棋的坐标是 。若你在走完上一步就已经获胜,则不会读入这两个数,而是直接进入下一局游戏。
特殊地,为了方便交互,你所有下的棋的坐标必须在 以内,否则会直接判你 步,立即结束这局游戏。同时交互库所有下棋的坐标也保证在 以内。同时,如果下在已有棋子上,则视为你这次下到了一个很远的地方,即放弃这次下棋的机会。如果想主动放弃,也可以采用这种方式。请注意交互库也可能选择放弃某次下棋的机会。
你的得分比为 次游戏的得分比最小值。
输入格式
上述的所有输入都应从标准输入中读入,所有输出都应向标准输出中输出。输出一行后必须清空缓冲区,否则你的评测将被判为 Time Limit Exceeded。清空缓冲区方式如下:
- 在 C++ 中,使用
fflush(stdout)
或cout.flush()
。 - 在 Pascal 中,使用
flush(output)
。 - 在 Python 中,使用
stdout.flush()
。 - 其他语言请自行查阅文档。
输出格式
如题目描述。 组交互结束后不应有任何多余的输出。
1
0 0
0 0
0 1
0 2
0 3
提示
【样例解释】
黑棋一直选择放弃,白棋下了 ,与黑棋的 在竖着的方向形成了黑白白白
。从而白棋胜利。
本题采用捆绑测试。
- Subtask1(10pts):保证交互库随机下在一个点上。
- Subtask2(10pts):保证交互库除了在你下一步必胜时,均选择放弃下棋。
- Subtask3(20pts):。
- Subtask4(60pts):无特殊限制。
对于 的数据,。