#C1016. 双子之争

双子之争

双子之争(battle)

【题目描述】

在向日葵太空站里,Aries 和 Aqua 正在玩游戏。两人扮演游戏中的将军,生命值分别为 aabb 点。

游戏中总共有 mm 个士兵,第 ii 个士兵属于 tit_i。其中 tit_i0 则表示属于 Aries,否则 tit_i1 则表示属于 Aqua。

士兵将按照顺序依次行动。游戏共进行 mm 轮。对于第 ii 轮,如果第 ii 个士兵仍然存活,那么他可以进行如下操作之一:

  • 攻击对方的将军,对方将军生命值减 11。如果对方将军生命值变为 00 则对方将军死亡。
  • 攻击任意一个其他士兵,被攻击的士兵死亡。

如果 Aries 和 Aqua 中任意一方的将军死亡,那么另一方立刻获胜。而如果直到游戏结束都没有将军死亡则为平局。

初始给定由 01 组成的字符串 s1s2sns_1s_2\dots s_n,现在共有 qq 次修改或查询操作:

  • 1 p 表示一次修改。如果 sps_p0 则将 sps_p 修改为 1,反之将 sps_p 修改为 0
  • 2 l r x y 表示一次查询。如果游戏局面满足 m=rl+1m = r - l + 1t=slsl+1sr t = s_{l}s_{l+1}\dots s_ra=x a = xb=y b = y,那么游戏的结果会是什么? 如果 Aries 获胜则输出 Aries,Aqua 获胜则输出 Aqua,平局则输出 Draw

保证所有士兵都是绝顶聪明。且希望其所属的一方获胜,无法获胜则希望平局。

tips:请注意题目中的人名(本人写的时候因为这个东西卡了一会)

【输入格式】

第一行两个正整数 n,qn, q

第二行输入一个长度为 nn,仅由 01 组成的字符串 ss

接下来 qq 行,每行表示一次修改或查询操作。

【输出格式】

对于每次查询操作,输出一行一个字符串表示答案。

【样例1输入】
8 8
00111000
2 1 5 1 2
2 2 8 2 2
2 1 8 3 5
1 6
2 3 7 4 2
1 4
2 4 8 2 2
2 1 8 1 2
【样例1输出】
Aries
Aqua
Draw
Aqua
Draw
Aries
【样例 2】

见选手目录下的 battle/battle2.inbattle/battle2.ans

该样例满足测试点 ?? ?\sim? 的约束条件。

【样例 3】

见选手目录下的 battle/battle3.inbattle/battle3.ans

该样例满足测试点 212521\sim 25 的约束条件。

【数据范围】

对于所有数据,保证 1n,q2×1051 \leq n, q \leq 2 \times 10^5ss 只包含 01,$1 \leq p \leq n, 1 \leq l \leq r \leq n, 1 \leq x, y \leq 10^9$。

测试点编号 nn\le qq \leq 特殊性质 分值
1,21,2 2020 88
3,4,53,4,5 8080 1010 A, B 1212
6,7,86,7,8 500500 A
9,10,119,10,11 50005000 A, B
12,13,1412,13,14 2×1052 \times 10^5 A
15,1615,16 2×1052 \times 10^5 C 88
172017 \sim 20 A, B 1616
212521\sim 25 2020

特殊性质 A:只有查询操作,没有修改操作。

特殊性质 B:所有 sis_i 都在 01 中均匀独立选取。

特殊性质 C:对于所有查询操作有 y=109y = 10^9