Sai khác một kí tự
Xem dạng PDFTrong hệ thống nhận dạng mẫu, hai đoạn dữ liệu được xem là gần giống nhau nếu chúng có cùng độ dài và khác nhau ở không quá một vị trí.
Cho một xâu ~s~ và nhiều truy vấn. Mỗi truy vấn chọn hai xâu con của ~s~. Cần kiểm tra hai xâu con đó có gần giống nhau hay không.
Yêu cầu
Với mỗi truy vấn gồm bốn chỉ số ~l_1~, ~r_1~, ~l_2~, ~r_2~, xét hai xâu con:
- ~A = s[l_1..r_1]~.
- ~B = s[l_2..r_2]~.
In YES nếu ~A~ và ~B~ có cùng độ dài và khác nhau ở không quá một ký tự. Ngược lại, in NO.
Dữ liệu
Dữ liệu vào từ chuẩn gồm:
- Dòng đầu tiên chứa hai số nguyên ~n~ và ~q~.
- Dòng thứ hai chứa xâu ~s~ có độ dài ~n~.
- Mỗi dòng trong ~q~ dòng tiếp theo chứa bốn số nguyên ~l_1~, ~r_1~, ~l_2~, ~r_2~.
Các chỉ số trong xâu được đánh số từ ~1~.
Kết quả
Ghi ra ~q~ dòng, mỗi dòng là YES hoặc NO tương ứng với một truy vấn.
Ví dụ
Ví dụ 1
Input
10 5
abacabadab
1 3 5 7
1 4 5 8
1 4 6 9
2 5 6 9
3 3 10 10
Output
YES
YES
NO
YES
YES
Ví dụ 2
Input
8 4
abcdefgh
1 3 2 4
1 4 5 8
2 5 4 7
1 2 1 3
Output
NO
NO
NO
NO
Giải thích
Ví dụ 1
Ở truy vấn thứ nhất, ~s[1..3] = \text{aba}~ và ~s[5..7] = \text{aba}~, hai xâu bằng nhau nên kết quả là YES.
Ở truy vấn thứ hai, ~s[1..4] = \text{abac}~ và ~s[5..8] = \text{abad}~, hai xâu chỉ khác nhau ở ký tự cuối nên kết quả là YES.
Ở truy vấn thứ ba, ~s[1..4] = \text{abac}~ và ~s[6..9] = \text{bada}~, hai xâu khác nhau ở nhiều hơn một vị trí nên kết quả là NO.
Ví dụ 2
Mỗi truy vấn đều tạo ra hai xâu con có độ dài khác nhau hoặc khác nhau ở nhiều hơn một vị trí.
Ràng buộc và chấm điểm
Ràng buộc
- ~1 \le n, q \le 2 \cdot 10^5~.
- ~s~ chỉ gồm chữ cái tiếng Anh thường từ ~\text{a}~ đến ~\text{z}~.
- ~1 \le l_1 \le r_1 \le n~.
- ~1 \le l_2 \le r_2 \le n~.
Chấm điểm
- Subtask~1~ ~(25\%)~: ~n, q \le 2000~.
- Subtask~2~ ~(25\%)~: mọi truy vấn có độ dài hai xâu con bằng nhau và không vượt quá ~50~.
- Subtask~3~ ~(50\%)~: không có ràng buộc bổ sung.
Bình luận