#P7356. 「PMOI-1」游戏

    ID: 6251 远端评测题 1000ms 256MiB 尝试: 0 已通过: 0 难度: 5 上传者: 标签>博弈论2021交互题Special JudgeO2优化构造

「PMOI-1」游戏

题目背景

大眼观察乃交互题第一要义

——command_block 《考前小贴士》

djy 的同桌和 djy 玩五子棋玩腻了,就发明了一个更无聊的新游戏,因为 djy 太菜了,所以你要帮这个蒟蒻想出必胜策略。

题目描述

这是一个 IO 交互题。

这个游戏在一个平面直角坐标系的原点,x,yx,y 正半轴第一象限中进行。

交互程序黑棋,你白棋,黑棋先开始,保证交互库第一步下 (0,0)(0,0)黑白棋都只能下在 x,yx,y 坐标都为自然数的点

若出现横竖斜任意一个方向有连续的 黑白白白,则白棋赢,若你用了 xx 步胜利,且 x13x\le 13,你得到 min(14x,10)10\frac{\min(14-x,10)}{10} 占比的分数。

交互方式

先输入一个整数 TT 表示进行 TT 次游戏。

接下来的 TT 次游戏,执行以下过程:

第一步交互库走的 (0,0)(0,0) 无需输入。

然后重复执行以下两步直到你下了 1414 步棋或者你获胜:

1.你输出一行两个数 x y,表示你下的棋的坐标是 (x,y)(x,y)

2.你读入一行两个数 x y,表示交互库下的棋的坐标是 (x,y)(x,y)若你在走完上一步就已经获胜,则不会读入这两个数,而是直接进入下一局游戏。

特殊地,为了方便交互,你所有下的棋的坐标必须在 100100 以内,否则会直接判你 1414 步,立即结束这局游戏。同时交互库所有下棋的坐标也保证在 100100 以内。同时,如果下在已有棋子上,则视为你这次下到了一个很远的地方,即放弃这次下棋的机会。如果想主动放弃,也可以采用这种方式。请注意交互库也可能选择放弃某次下棋的机会。

你的得分比为 TT 次游戏的得分比最小值

输入格式

上述的所有输入都应从标准输入中读入,所有输出都应向标准输出中输出。输出一行后必须清空缓冲区,否则你的评测将被判为 Time Limit Exceeded。清空缓冲区方式如下:

  • 在 C++ 中,使用 fflush(stdout)cout.flush()
  • 在 Pascal 中,使用 flush(output)
  • 在 Python 中,使用 stdout.flush()
  • 其他语言请自行查阅文档。

输出格式

如题目描述。TT 组交互结束后不应有任何多余的输出。

1

0 0

0 0

0 1

0 2

0 3

提示

【样例解释】

黑棋一直选择放弃,白棋下了 (0,1),(0,2),(0,3)(0,1),(0,2),(0,3) ,与黑棋的 (0,0)(0,0) 在竖着的方向形成了黑白白白。从而白棋胜利。

本题采用捆绑测试。

  • Subtask1(10pts):保证交互库随机下在一个点上。
  • Subtask2(10pts):保证交互库除了在你下一步必胜时,均选择放弃下棋。
  • Subtask3(20pts):T=5T=5
  • Subtask4(60pts):无特殊限制。

对于 100%100\% 的数据,1T1031\le T\le 10^3