luogu#P7336. [JRKSJ R1] 1+1

    ID: 11340 远端评测题 1000ms 128MiB 尝试: 0 已通过: 0 难度: 6 上传者: 标签>搜索2021交互题Special JudgeO2优化洛谷原创

[JRKSJ R1] 1+1

题目描述

玩法简介

「1+1」 是一款双人对抗游戏。两名玩家各自拥有两个数,每次一名玩家可以用自己的一个数加上对方的一个数,如果大于 99 则取个位。双方轮流执行此步骤。如,下面记录了游戏的几个回合,玩家双方分别为 ab

在下面的局面解释中,第一个局面标 * 的是先手。

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

这些攻击的「攻击度」为 11 ,除了 9 19 1 的攻击度为 22

下面的情况称为「防御」:

5 1
5 5

这些防御的「防御度」为 11 ,除了 5 55 5的 防御度为 22

当然,所有的攻击或防御不分两个数的顺序,如 5 11 5 都视作防御,而 9 11 9 也都视为攻击,而攻击/防御度不变。

如果玩家 a 持有防御,而玩家 b 在下一步走成了攻击,如下面的情况:

a:1 5
b:1 1*

a:1 5
b:6 1

那么此时 a 持有防御度为 111 5b 持有攻击度为 116 1,此时应该将 a 持有的数变成 1 1b 的此次攻击无效。

也就是说,如果 a 的攻击的攻击度与 b 的防御的防御度相等,则将 b 的两个数变为 1 1a 的此次攻击视作无效。

我们认为不属于上面的攻击/防御的攻击/防御度为 00 (如 3 4 等。)

特别的,如果遇到下面这种情况:

a:5 5
b:1 1*

a:5 5
b:1 6

a 的防御度为 22 而 b 的攻击度为 11 。此时应该把 a 变成 5 1b 的此次攻击作废。


胜利条件

如果一方走完一步后,他的攻击度严格大于另一方的防御度,则这一方获胜。此时不应该做任何改动,即使要把另一方变成 1 15 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 的程序玩这个游戏。

输入格式

第一行五个整数 p0,p1,c0,c1,Pp_0,p_1,c_0,c_1,P,分别表示你的两个数,mcyl35 的两个数和测试点编号。

下面每行两个整数 x,yx,y,表示 mcyl35 的第 xx 个数加上了你的第 yy 个数。

本题使用 IO 交互,具体可见 P1733 猜数(IO交互版)

输出格式

每行两个整数 x,yx,y,表示你的第 xx 个数加上了 mcyl35 的第 yy 个数。

1 1 1 2 0
1 1
1 0
0 0
0 1
0 0

提示

数据规模与约定

对于测试点 11,保证玩家可以一步获胜。

对于测试点 22,保证 mcyl35 的程序随机走步。

对于其他测试点,无特殊约定。

对于 100%100\% 的数据,0p0,p1,c0,c190\le p_0,p_1,c_0,c_1\le 9

评分标准

  • 有不合法的输出(如输出中含有除了 0,10,1 之外的数),得 00 分。

  • 获胜或走了 100100 步及以上本测试点可以获得满分。

  • 否则获得 st20\lfloor \dfrac {st} {20} \rfloor 分,stst 表示走的步数,一步表示 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