Robot and String

题意翻译

## 题意翻译 给你一个字符串 **S** 以及**Q**个**l**,**r**。 对$S_{l_i}$~$S_{r_i}$这个子串进行如下变换: 1. 如果存在相邻两个字符相同,则**aa**变为**b**,**bb**变为**c**,**cc**变为**d**……**yy**变为**z**,**zz**就直接变为空,只变换最靠前的一处相邻字母 2. 重复1步骤,直到无法继续变换或子串为空 对每个l,r,输出“Yes”表示这个子串最后会变为空串,输出“No”表示不会

题目描述

[problemUrl]: https://atcoder.jp/contests/mujin-pc-2017/tasks/mujin_pc_2017_c あなたは、文字列を処理するロボットを開発しています。 英小文字のみからなる文字列 $ t $ をこのロボットに与えると、ロボットは次の手順に従って文字列を処理します。 1. $ t_i\ =\ t_{i\ +\ 1} $ であるような最小の $ i $ を選ぶ。 そのような $ i $ が存在しない場合、処理を終える。 2. $ t_i $ が `z` である場合、$ t_i $, $ t_{i\ +\ 1} $ を取り除く。 $ t_i $ が `z` でない場合、$ t_i $ の次のアルファベットを $ c $ として、$ t_i $, $ t_{i\ +\ 1} $ をまとめて$ 1 $ 文字の $ c $ へ置き換える。 3. 1. へ戻る。 例えば、文字列 `axxxxza` をロボットに与えると、文字列は `axxxxza` → `ayxxza` → `ayyza` → `azza` → `aa` → `b` と処理されます。 英小文字のみからなる文字列 $ s $ が与えられます。 $ s $ について $ Q $ 個の質問に答えてください。 $ i $ 番目の質問は次のようなものです。 - $ s $ の $ l_i $ 文字目から $ r_i $ 文字目までの連続した部分文字列をロボットに与えると、処理された後の文字列は空文字列になるか?

输入输出格式

输入格式


入力は以下の形式で標準入力から与えられる。 > $ s $ $ Q $ $ l_1 $ $ r_1 $ $ l_2 $ $ r_2 $ $ : $ $ l_Q $ $ r_Q $

输出格式


$ Q $ 行出力せよ。 $ i $ 行目には、$ i $ 番目の質問に対する答えとして `Yes` または `No` を出力せよ。

输入输出样例

输入样例 #1

axxxxza
2
1 7
2 6

输出样例 #1

No
Yes

输入样例 #2

aabcdefghijklmnopqrstuvwxyz
1
1 27

输出样例 #2

Yes

输入样例 #3

yzyyyzyzyyyz
8
1 6
7 12
1 12
6 11
1 1
1 3
4 9
3 8

输出样例 #3

Yes
Yes
Yes
Yes
No
No
No
No

说明

### 制約 - $ 1\ <\ =\ |s|\ <\ =\ 5\ ×\ 10^5 $ - $ s $ は英小文字のみからなる。 - $ 1\ <\ =\ Q\ <\ =\ 10^5 $ - $ 1\ <\ =\ l_i\ <\ =\ r_i\ <\ =\ |s| $ ### Sample Explanation 1 \- $ 1 $ 番目の質問では、文字列は `axxxxza` → `ayxxza` → `ayyza` → `azza` → `aa` → `b` と処理されます。 - $ 2 $ 番目の質問では、文字列は `xxxxz` → `yxxz` → `yyz` → `zz` → `` と処理されます。