#P7336. [JRKSJ R1] 1+1
[JRKSJ R1] 1+1
题目描述
玩法简介
「1+1」 是一款双人对抗游戏。两名玩家各自拥有两个数,每次一名玩家可以用自己的一个数加上对方的一个数,如果大于 则取个位。双方轮流执行此步骤。如,下面记录了游戏的几个回合,玩家双方分别为 a
和 b
:
在下面的局面解释中,第一个局面标 *
的是先手。
a:1 1*(初始局面)
b:1 2
a:1 3(1+2)
b:1 2
a:1 3
b:1 5(2+3)
a:6 3(1+5)
b:1 5
特殊局面
我们把下面的情况称为「攻击」:
3 3
5 3
6 1
9 1
这些攻击的「攻击度」为 ,除了 9 1
。9 1
的攻击度为 。
下面的情况称为「防御」:
5 1
5 5
这些防御的「防御度」为 ,除了 5 5
。5 5
的 防御度为 。
当然,所有的攻击或防御不分两个数的顺序,如 5 1
和 1 5
都视作防御,而
9 1
和 1 9
也都视为攻击,而攻击/防御度不变。
如果玩家 a
持有防御,而玩家 b
在下一步走成了攻击,如下面的情况:
a:1 5
b:1 1*
a:1 5
b:6 1
那么此时 a
持有防御度为 的 1 5
, b
持有攻击度为 的 6 1
,此时应该将 a
持有的数变成 1 1
而 b
的此次攻击无效。
也就是说,如果 a
的攻击的攻击度与 b
的防御的防御度相等,则将 b
的两个数变为 1 1
而 a
的此次攻击视作无效。
我们认为不属于上面的攻击/防御的攻击/防御度为 (如 3 4
等。)
特别的,如果遇到下面这种情况:
a:5 5
b:1 1*
a:5 5
b:1 6
a
的防御度为 而 b 的攻击度为 。此时应该把 a
变成 5 1
而 b
的此次攻击作废。
胜利条件
如果一方走完一步后,他的攻击度严格大于另一方的防御度,则这一方获胜。此时不应该做任何改动,即使要把另一方变成 1 1
或 5 1
。
下面给出了一个例子:
a:1 1
b:6 3*
a:1 1
b:6 4
a:1 5
b:6 4
a:1 5
b:6 9
a:1 1
b:6 9
a:1 1
b:6 0
a:1 7
b:6 0
a:1 7
b:6 1
( b 胜)
为了消除歧义,下面再给出一些例子:
a:5 5
b:1 4*
a:1 1
b:1 9
a:1 0( 1+9=10 ,个位为 0 )
b:1 9
a:1 0
b:1 9(注意这里, b 用 1 (或 9 )加了 a 的 0 ,这样也算一次新的攻击)
( b 胜)
a:1 1*
b:1 4
a:1 5
b:1 4
a:1 5(因为是最后一步,无须变成“1 1”)
b:1 9(这里 b 的“1 9”直接碾压了 a 的“1 5”)
( b 胜)
现在,你被要求写一个程序,作为先手通过交互的方式和 mcyl35 的程序玩这个游戏。
输入格式
第一行五个整数 ,分别表示你的两个数,mcyl35 的两个数和测试点编号。
下面每行两个整数 ,表示 mcyl35 的第 个数加上了你的第 个数。
本题使用 IO 交互,具体可见 P1733 猜数(IO交互版)。
输出格式
每行两个整数 ,表示你的第 个数加上了 mcyl35 的第 个数。
1 1 1 2 0
1 1
1 0
0 0
0 1
0 0
提示
数据规模与约定
对于测试点 ,保证玩家可以一步获胜。
对于测试点 ,保证 mcyl35 的程序随机走步。
对于其他测试点,无特殊约定。
对于 的数据,。
评分标准
-
有不合法的输出(如输出中含有除了 之外的数),得 分。
-
获胜或走了 步及以上本测试点可以获得满分。
-
否则获得 分, 表示走的步数,一步表示 mcyl35 走一步。
提示
当交互库没有返回数时,说明结果已经被判定了。
样例解释
pl:1 1*
cp:1 2
pl:2 1
cp:1 2
pl:2 1
cp:1 3
pl:5 1
cp:1 3
pl:5 1
cp:1 8
pl:6 1(胜)
cp:1 8