CF1375F Integer Game

题目描述

这是一个交互题。 Anton 和 Harris 正在玩一个游戏,以决定谁是出题之王。 有三堆石子,初始分别有 $a$、$b$、$c$ 个石子,其中 $a$、$b$、$c$ 是互不相同的正整数。每一轮游戏,依次发生以下事件: - 第一位玩家选择一个正整数 $y$,并将其提供给第二位玩家。 - 第二位玩家将 $y$ 个石子加入到某一堆中,但不能连续两轮选择同一堆。 如果在某一时刻,有两堆石子的数量相同,则第二位玩家输。如果经过 $1000$ 轮,第二位玩家仍未输,则第一位玩家输。 Anton 十分自信,因此让 Harris 选择自己是先手还是后手。请帮助 Harris 战胜 Anton,成为出题之王!

输入格式

输入的第一行包含三个互不相同的正整数 $a$、$b$、$c$($1 \leq a, b, c \leq 10^9$),分别表示三堆石子的初始数量。

输出格式

交互从读取 $a$、$b$、$c$ 开始。 读入这三个整数后,输出一行 "First" 或 "Second",表示你选择作为先手还是后手。 每一轮,第一位玩家(你或评测器)需要输出一个正整数 $y$($1 \leq y \leq 10^{12}$)。 然后,第二位玩家需要输出 $1$、$2$ 或 $3$,表示将 $y$ 个石子加入到哪一堆。从第二轮开始,第二位玩家选择的堆必须与上一轮不同。 如果你作为后手并且顺利完成 $1000$ 轮未输,或者你作为先手并且评测器无法继续操作而未输,交互器会输出 $0$ 并结束交互。这表示你的程序在本测试点是正确的,你应立即退出。 如果你作为先手并且 $1000$ 轮未能获胜,或者你作为后手并且做出使两堆石子数量相同的操作,或者你作为任意一方输出了非法操作,交互器会输出 $-1$ 并结束交互。你将收到 Wrong Answer 判定。请确保立即退出以避免其他判定。 每次输出后不要忘记换行并刷新输出缓冲区,否则会收到 Idleness limit exceeded 判定。具体操作如下: - C++:fflush(stdout) 或 cout.flush() - Java:System.out.flush() - Pascal:flush(output) - Python:stdout.flush() - 其他语言请查阅相关文档。 本题不支持 Hack。

说明/提示

在样例输入中,三堆石子的初始数量分别为 $5$、$2$、$6$。Harris 决定先手,并给 Anton 提供了数字 $2$。Anton 将 $2$ 个石子加入第三堆,此时三堆分别为 $5$、$2$、$8$。 下一轮,Harris 选择了 $3$。注意 Anton 不能再选择第三堆,因为上一轮已经选过第三堆。Anton 发现自己已经没有合法操作,只能认输,Harris 成为出题之王。 由 ChatGPT 4.1 翻译