#P9898. 『PG2』猪棋
『PG2』猪棋
题目背景
交互库绝顶聪明。
题目描述
猪棋的规则:
在一个 的棋盘上,两人分别执黑棋白棋轮流执子,每次可以在当前没有子的不同位置将两颗子分别放下(有序),如果一颗子放下时出现有 的四个位置棋子颜色均相同则执此颜色者获胜。
你将扮演先手,在 步内战胜交互库扮演的后手,保证有解。
对于每轮,你可以选择两个坐标 与 落子,你首先需要保证 ,你其次需要保证没人曾在 落子,如果此时你获胜了判定结束且你获胜,否则你还需保证没人曾经在 落子,如果此时你获胜了判定结束且你获胜,否则交互库将返回一组 表示他在 落子,保证 $(x_1,y_1)\neq (x_2,y_2),1\leq x_1,y_1,x_2,y_2\leq 1000$,如果此时交互库获胜判定结束且你输了,否则判定棋盘上是否已经有 颗子,如果是你获得平局,否则进入你的新一轮。
输入格式
你每轮结束后从标准输入中输入四个整数,代表评测机返回的结果。
输出格式
每轮开始时,你需要向标准输出输出四个 中的整数,然后清空缓冲区。
你可以使用如下语句来清空缓冲区:
- 对于 C/C++:
fflush(stdout)
; - 对于 C++:
std::cout << std::flush
; - 对于 Java:
System.out.flush()
; - 对于 Python:
stdout.flush()
; - 对于 Pascal:
flush(output)
; - 对于其他语言,请自行查阅对应语言的帮助文档。
特别的,对于 C++ 语言,在输出换行时如果你使用 std::endl
而不是 '\n'
,也可以自动刷新缓冲区。
提示
共 个测试点,在测试点中如果你获胜且每步都满足 你将获得 分,否则获胜你将获得 分,你输了将获得 分,平局获得 分,总分数取测试点最小值。
本题输入输出参考 分程序:
#include <bits/stdc++.h>
using namespace std;
int n;
int x,y,xx,yy;
signed main()
{
int i,j,k;
n=100;
while(n--)
{
cout<<rand()%1000+1<<' '<<rand()%1000+1<<endl;
cout<<rand()%1000+1<<' '<<rand()%1000+1<<endl;
cin>>x>>y>>xx>>yy;
}
return 0;
}