đang phát triển một robot chuyên xử lí chuỗi. Khi robot được đưa cho một chuỗi chỉ gồm các chữ cái tiếng anh viết thường, nó sẽ xử lí chuỗi theo quy trình sau:
-
Bước \(1\): Tìm \(i\) là chỉ số vị trí nhỏ nhất sao cho \(S_i = S_{i+1}\) . Nếu không tồn tại \(i\) thỏa mãn điều đó, robot sẽ chấm dứt quy trình.
-
Bước \(2\): Nếu \(S_i\) là
z
thì ta xóa \(S_i\) và \(S_{i+1}\) và trong chuỗi \(S\) . Nếu không phải làz
: Gọi \(change\) là chữ cái tiếp theo của \(S_i\) theo alphabet, ta thay thế \(S_i\) và \(S_{i+1}\) bằng chữ cái \(change\) (tất nhiên là \(length(s)\) sẽ bị giảm đi \(1\) đơn vị). -
Bước \(3\): Quay lại bước \(1\).
Ví dụ: Khi robot được giao cho chuỗi axxxxza
thì con robot sẽ thực hiện theo quy trình theo như sau: axxxxza
\(\rightarrow\) ayxxza
\(\rightarrow\) ayyza
\(\rightarrow\) azza
\(\rightarrow\) aa
\(\rightarrow\) b
.
Yêu cầu: Cho một chuỗi \(S\) và \(Q\) truy vấn. Mỗi truy vấn có câu hỏi như sau và bạn hãy trả lời nó:
- Cho hai số nguyên dương \(l\) và \(r\) và gọi \(T\) là chuỗi con được ghép từ các chữ cái \(S_l\) đến \(S_r\). Nếu ta thực hiện quy trình giống con robot thì liệu có thể biến chuỗi \(T\) thành một chuỗi rỗng được không? Biết rằng vị trí của xâu bắt đầu từ \(1\) (bắt đầu từ \(S_1\)).
Input
- Dòng đầu tiên chứa chuỗi \(S\) \((1 \le length(S) \le 5 \times 10^5)\).
- Dòng tiếp theo chứa số nguyên dương \(Q\) \((1 \le Q \le 10^5)\).
- \(Q\) dòng còn lại mỗi dòng chứa hai số nguyên dương \(l\) và \(r\) ứng với mỗi truy vấn \((1 \le l \le r \le length(S))\)
Output
- Ứng với mỗi truy vấn in ra
Yes
nếu có thể biến chuỗi \(T\) thành chuỗi rỗng theo câu hỏi, nếu không thể thì in raNo
.
Scoring
- Subtask \(1\) (\(30\%\) số điểm): Có \(Q \le 5\).
- Subtask \(2\) (\(70\%\) số điểm): Không có ràng buộc gì thêm.
Example
Test 1
Input
axxxxza
2
1 7
2 6
Output
No
Yes
Note
- Đối với truy vấn đầu tiên chuỗi sẽ được xử lí như sau:
axxxxza
\(\rightarrow\)ayxxza
\(\rightarrow\)ayyza
\(\rightarrow\)azza
\(\rightarrow\)aa
\(\rightarrow\)b
. - Đối với truy vấn thứ hai chuỗi sẽ được xử lí như sau:
xxxxz
\(\rightarrow\)yxxz
\(\rightarrow\)yyz
\(\rightarrow\)zz
\(\rightarrow\).
Bình luận