『PG2』猪棋

Luogu
IDLGP9898
Time5000ms
Memory512MB
DifficultyP6
博弈论交互题Special Judge
猪棋的规则: 在一个 $1000\times 1000$ 的棋盘上,两人分别执黑棋白棋轮流执子,每次可以在当前没有子的不同位置将两颗子分别放下(有序),如果一颗子放下时出现有 $(x,y),(x+1,y),(x,y+1),(x+1,y+1)$ 的四个位置棋子颜色均相同则执此颜色者获胜。 你将扮演先手,在 $100$ 步内战胜交互库扮演的后手,保证有解。 对于每轮,你可以选择两个坐标 $(x_1,y_1)$ 与 $(x_2,y_2)$ 落子,你首先需要保证 $1\leq x_1,y_1,x_2,y_2\leq 1000$,你其次需要保证没人曾在 $(x_1,y_1)$ 落子,如果此时你获胜了判定结束且你获胜,否则你还需保证没人曾经在 $(x_2,y_2)$ 落子,如果此时你获胜了判定结束且你获胜,否则交互库将返回一组 $x_1,y_1,x_2,y_2$ 表示他在 $(x_1,y_1),(x_2,y_2)$ 落子,保证 $(x_1,y_1)\neq (x_2,y_2),1\leq x_1,y_1,x_2,y_2\leq 1000$,如果此时交互库获胜判定结束且你输了,否则判定棋盘上是否已经有 $400$ 颗子,如果是你获得平局,否则进入你的新一轮。 ## Input 你每轮结束后从**标准输入**中输入四个整数,代表评测机返回的结果。 ## Output 每轮开始时,你需要向**标准输出**输出四个 $[1,1000]$ 中的整数,**然后清空缓冲区**。 你可以使用如下语句来清空缓冲区: - 对于 C/C++:`fflush(stdout)`; - 对于 C++:`std::cout << std::flush`; - 对于 Java:`System.out.flush()`; - 对于 Python:`stdout.flush()`; - 对于 Pascal:`flush(output)`; - 对于其他语言,请自行查阅对应语言的帮助文档。 特别的,对于 C++ 语言,在输出换行时如果你使用 `std::endl` 而不是 `'\n'`,也可以自动刷新缓冲区。 [samples] ## Background 交互库绝顶聪明。 ## Note 共 $5$ 个测试点,在测试点中如果你获胜且每步都满足 $6\leq x,y\leq 994$ 你将获得 $100$ 分,否则获胜你将获得 $50$ 分,你输了将获得 $0$ 分,平局获得 $30$ 分,总分数取测试点最小值。 本题输入输出参考 $0$ 分程序: ```cpp #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; } ```
API Response (JSON)
{
  "problem": {
    "name": "『PG2』猪棋",
    "description": {
      "content": "猪棋的规则: 在一个 $1000\\times 1000$ 的棋盘上,两人分别执黑棋白棋轮流执子,每次可以在当前没有子的不同位置将两颗子分别放下(有序),如果一颗子放下时出现有 $(x,y),(x+1,y),(x,y+1),(x+1,y+1)$ 的四个位置棋子颜色均相同则执此颜色者获胜。 你将扮演先手,在 $100$ 步内战胜交互库扮演的后手,保证有解。 对于每轮,你可以选择两个坐标 $(x_",
      "description_type": "Markdown"
    },
    "platform": "Luogu",
    "limit": {
      "time_limit": 5000,
      "memory_limit": 524288
    },
    "difficulty": {
      "LuoguStyle": "P6"
    },
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "LGP9898"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "猪棋的规则:\n\n在一个 $1000\\times 1000$ 的棋盘上,两人分别执黑棋白棋轮流执子,每次可以在当前没有子的不同位置将两颗子分别放下(有序),如果一颗子放下时出现有 $(x,y),(x+1,y),(x,y+1),(x+1,y+1)$ 的四个位置棋子颜色均相同则执此颜色者获胜。\n\n你将扮演先手,在 $100$ 步内战胜交互库扮演的后手,保证有解。\n\n对于每轮,你可以选择两个坐标 $(x_...",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments