Robot With String

Xem PDF




Thời gian:
Pypy 2 4.0s
Pypy 3 4.0s
Python 4.0s
Bộ nhớ:
Pypy 2 512M
Pypy 3 512M
Python 512M

Tác giả:
Dạng bài
Điểm: 2000 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

shiba đang phát triển một robot chuyên xử lí chuỗi. Khi robot được _minhduc đư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\)z thì ta xóa \(S_i\)\(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\)\(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\)\(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\)\(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\)\(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 ra No.

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

Không có bình luận nào.