Trong thiết kế hệ thống, kiểm thử là một giai đoạn vô cùng quan trọng. Quân đang thiết kế một máy theo nguyên lí máy Turing, tức là thực hiện các thao tác trên một băng ghi bộ nhớ; và máy của anh đang trong giai đoạn kiểm thử.
Băng ghi bộ nhớ của Quân có thể coi là một xâu nhị phân ~n~ kí tự được đánh số từ ~1~ đến ~n~ Để kiểm tra máy, người ta lần lượt thực hiện các truy vấn:
x y z t
: Kiểm tra xem hai xâu con từ ~x~ đến ~y~ và từ ~z~ đến ~t~ có giống nhau không?
Yêu cầu: Bạn hãy giúp Quân kiểm tra máy của anh bằng cách trả lời các truy vấn nhé!
Input Format
Dòng đầu tiên chứa xâu nhị phân ~S~ ~(|S| \le 10^{5})~ mô tả trạng thái băng nhớ.
Dòng thứ hai chứa số nguyên dương ~q~ ~( 1 \le q \le 10^{5})~ là số truy vấn.
~q~ dòng tiếp theo mỗi dòng gồm 4 số nguyên dương ~x,y,z,t~ ~(1 \le x \le y \le |S| ,1 \le z \le t \le |S|)~ mô tả một truy vấn
Output Format
In ra nhiều dòng theo thứ tự là đáp án của truy vấn tương ứng:
- Nếu hai dãy là giống nhau, in ra
YES
, ngược lại in raNO
.
Scoring
- Subtask ~1~ (~36~ điểm): ~1 \le |S| , q \le 1000 ~.
- Subtask ~3~ (~64~ điểm): Không có điều kiện gì thêm.
Sample Input
01101011
5
4 5 6 7
2 3 5 6
1 3 5 6
1 5 2 7
1 2 7 8
Sample Output
YES
NO
NO
NO
NO
Bình luận