T230253 [愚人节比赛 2022] Reverse Ideology
题目背景
**这是一道 Aya 题。交互非常可爱。**
2077 年,可以解决一切简单博弈问题的式神被人类所发明,于是很多老游戏(例如石头剪刀布、井字棋)全都幻想入了。
现在,由于辉针城实在是太无聊了,少名针妙丸(下称小碗)开始与鬼人正邪(下称正邪)下井字棋。
题目描述
在下了几局后,她们突然发现,如果她们都决策正确,那么这个游戏一定会平局——这样就太没意思了嘛。所以,正邪发动了能力,每一回合(两人轮流操作一次称为一回合)都会使井字棋的规则翻转,使游戏充满了变数。
但是......虽然是正邪修改的规则,但是她除了「规则被翻转了」外什么也不知道!所以,她与小碗进行了几场对局,在一方胜利或者游戏平局时,对局会结束,并且最终的结果也会出现。她希望你能通过观察找到游戏的真正规则,并且构造出先手必胜策略。
在「样例组」中,正邪将会给出若干场对局的记录,其中输入为小碗(后手)的落子记录,输出则为正邪(先手)的落子记录。输入的最后会给出对局结果。保证没有人在对局结束后继续落子。
若正邪胜,结果为 `seija_win`,小碗胜则为 `shinmyoumaru_win`,否则为 `draw`。
### 交互方式
首先,从标准输入读入正整数 $T$,表示交互次数。
每一次交互采用以下方式进行:
1. 玩家操作。你需要向标准输出输出一行两个整数 $x,y(1 \le x,y \le 3)$,表示你要绘制记号的位置,你需要保证该位置之前没有被绘制上记号。
1. 从标准输入读入一个整数 $t$。若此时游戏结束或者你的操作不合法,则 $t=1$,表示这一次交互结束。否则 $t=0$,表示交互继续进行。
1. 电脑操作。你需要从标准输入读入一行两个整数 $x,y(1 \le x,y \le 3)$,表示电脑绘制记号的位置。保证该操作合法。
1. 从标准输入读入一个整数 $t$。若此时游戏结束,则 $t=1$,表示这一次交互结束。否则 $t=0$,表示交互继续进行。
1. 回到步骤 $1$,相当于一个无限循环。
每一次游戏结束后,交互库会输出一行一个字符串,表示结果,你应该将它正常读入。如果结果不是你胜或者这是最后一次游戏,那么应该立即结束程序,否则立即进行下一次交互。
输入格式
参考「交互方式」。
输出格式
参考「交互方式」。
说明/提示
### 提示
保证本题仅有一个测试点,且其交互次数为 1000。
对于 C++ 选手,可以使用以下程序作为模板来作答:
```cpp
#include
int board[4][4];
std::pair Draw() {
// draw in the middle of the board
return std::make_pair(2, 2);
}
signed main() {
int T;
std::cin>>T;
while(T--) {
while (1) {
std::pair d = Draw();
board[d.first][d.second] = 1;
std::cout x >> y >> t;
board[x][y] = 2;
if (t) break;
}
std::string s;
std::cin>>s;
if(s!="seija_win") break;
}
return 0;
}
```