#iroha2019day4c. [iroha2019_day4_c]君の力に
[iroha2019_day4_c]君の力に
故事
我到达车站时看到的是与异形战斗的Iroha酱。她像在舞动一样四处移动,玩弄着敌人。
然而,异形的势头一点也不减弱。敌人的数量太多了。仅仅观看是不够的。你的力量!
问题描述
现在,有 个敌人,第 个敌人最初离你的位置距离为 ,每秒向你靠近 1 的距离。当与敌人的距离变为 0 时,你将会死去。严格来说,当与距离为 0.5 的敌人靠近时,你也会死去。
此外,每个敌人都有一个由0
和1
组成的特定字符串,第 个敌人所拥有的字符串为 。
你有一把武器,并且这把武器也有一个由0
和1
组成的字符串 。你可以使用这把武器做以下两件事情:
- 击败最近的敌人。但是,武器字符串必须按字典顺序大于敌人所拥有的字符串。
- 用 1 秒的时间对武器施放魔法,改变字符串。
注意,攻击所需时间非常短,可以忽略不计。而且,在任何行动中,你都不会从原来的位置移动。
你可以使用的魔法将改变你武器的字符串如下:
- 在字符串的开头添加 2 个
0
。 - 对于每个字符,如果其右边和左边的数字相等,则写入
0
,否则写入1
。但是,如果右边或者左边的字符不存在,则什么都不写。 - 将下面写出的字符串作为新的字符串。
例如,当你的武器字符串为1101
时,使用魔法后,新的字符串将变为1110
。
给定 个敌人的信息和你最初持有的字符串 ,请判断你是否能够安全存活。
约束条件
- $0 < x_1 \\leq x_2 \\leq \\dots \\leq x_M \\leq 10^{18}$
- 和 均为仅包含
0
和1
的字符串
输入
输入以以下格式从标准输入中给出。
:
输出
如果你能在距离变为 0 之前击败所有敌人,则输出 Yes
,否则输出 No
。
输入示例 1
1101
2
1 1001
2 1101
输出示例 1
Yes
你可以按照以下步骤击败所有敌人:
- 击败最近的敌人。
- 花费 1 秒钟施放魔法。武器字符串变为
1110
,敌人靠近 1 的距离。 - 击败最近的敌人。
输入示例 2
1101
2
1 1001
2 1110
输出示例 2
No
在击败敌人时,武器字符串必须按字典顺序大于敌人所拥有的字符串。
输入示例 3
1111
4
1 1
2 011
3 1100
7 0000001
输出示例 3
Yes
有时甚至可以不使用魔法就能击败所有敌人。
输入示例 4
00000000
1
1000000000000000000 1
输出示例 4
No
有时候无论使用多少次魔法都不能击败敌人。
输入示例 5
0110011000
10
1 100
2 0111
3 0000
5 1
5 0
6 0000001
7 11
7 00
8 00
9 0101
输出示例 5
No
解释
解释可参考。