AT_iroha2019_day4_c 君の力に

题目描述

在你面前有 $ M $ 个敌人,第 $ i $ 个敌人最初在距离你 $ x_i + 0.5 $ 的地方。每秒敌人会向你靠近 $ 1 $。当某个敌人与你的距离达到 $ 0 $ 时,你会被消灭。具体来说,当某个敌人距离为 $ 0.5 $ 时再靠近一步,你就会遇难。每个敌人都有一个由 `0` 和 `1` 组成的唯一字符串 $ s_i $。 而你手中有一把武器,这把武器带有一个字符串 $ S $,也由 `0` 和 `1` 组成。你可以使用这把武器进行以下两种操作: - 消灭离你最近的敌人,但前提是你的武器字符串 $ S $ 在字典顺序上必须比敌人的字符串 $ s_i $ 大。 - 花费 $ 1 $ 秒时间对武器施加魔法,改变当前武器的字符串。 假设攻击所需时间可以忽略不计,你也不需要移动至其他地方来执行任何操作。 你所能使用的魔法会把武器字符串按照以下方法改动: 1. 在字符串的开头添加两个 `0`。 2. 对于字符串中的每个字符,如果它的左邻居和右邻居相同,则在其下面写 `0`,如果不同,则写 `1`。对于边界字符,无需写任何东西。 3. 将下层生成的新字符串替代原有的武器字符串。 举个例子,如果武器字符串原本是 `1101`,使用魔法后,新字符串将变为 `1110`。 给定 $ M $ 个敌人的信息以及武器初始字符串 $ S $,请判断你是否可以在敌人到达 $ 0 $ 距离之前消灭所有敌人。

输入格式

输入为一行,格式如下: > $ S $ $ M $ $ x_1 $ $ s_1 $ $ x_2 $ $ s_2 $ ... $ x_M $ $ s_M $

输出格式

如果能在所有敌人的距离达到 $ 0 $ 前消灭他们,输出 `Yes`;否则输出 `No`。

说明/提示

- 敌人数量 $ 0 \leq M \leq 10^5 $ - 初始距离 $ 0 < x_1 \leq x_2 \leq \cdots \leq x_M \leq 10^{18} $ - 敌人字符串长度 $ 1 \leq |s_i| $($ i = 1, 2, \ldots, M $) - 所有敌人字符串和武器字符串的长度之和不超过 $ 10^5 $ - 武器字符串长度 $ 1 \leq |S| \leq 10^5 $ - $ s_i $ 和 $ S $ 都是由 `0` 和 `1` 组成的字符串 ### 例子 - 示例 1:通过不断地击败最近的敌人和使用魔法来改变武器字符串,可以成功消灭所有敌人。 - 示例 2:使用武器击败敌人时,武器字符串在字典序上必须大于敌人字符串。 - 示例 3:有时候无需使用魔法即可消灭所有敌人。 - 示例 4:也可能存在某些敌人无论施加多少次魔法都无法被击败的情况。 **本翻译由 AI 自动生成**