Gương kí tự
Xem dạng PDF
Gửi bài giải
Điểm:
1,00 (OI)
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
256M
Input:
stdin
Output:
stdout
Dạng bài
Một thiết bị quét tạo ra xâu ~s~. Với nhiều đoạn cần kiểm tra, ta muốn biết đoạn đó có đọc xuôi và đọc ngược giống nhau hay không.
Một xâu được gọi là đối xứng nếu đọc từ trái sang phải giống đọc từ phải sang trái.
Yêu cầu
Cho xâu ~s~ độ dài ~n~ và ~q~ truy vấn. Mỗi truy vấn gồm hai chỉ số ~l~ và ~r~. Với mỗi truy vấn, hãy kiểm tra xâu con ~s[l..r]~ có đối xứng hay không.
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~ gồm đúng ~n~ chữ cái tiếng Anh thường.
- Mỗi dòng trong ~q~ dòng tiếp theo chứa hai số nguyên ~l~ và ~r~.
Các chỉ số trong xâu được đánh số từ ~1~.
Kết quả
Ghi ra ~q~ dòng. Với mỗi truy vấn:
- In
YESnếu ~s[l..r]~ là xâu đối xứng. - In
NOnếu ngược lại.
Ví dụ
Ví dụ 1
Input
7 5
abacaba
1 7
1 3
2 6
4 4
3 5
Output
YES
YES
NO
YES
YES
Ví dụ 2
Input
6 6
banana
2 4
2 6
1 6
3 5
1 1
5 6
Output
YES
YES
NO
YES
YES
NO
Giải thích
Ví dụ 1
Đoạn ~s[1..7] = \text{abacaba}~ là xâu đối xứng. Đoạn ~s[2..6] = \text{bacab}~ không đối xứng.
Ví dụ 2
Đoạn ~s[2..4] = \text{ana}~ và ~s[2..6] = \text{anana}~ đều là xâu đối xứng.
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 các chữ cái tiếng Anh thường từ ~\text{a}~ đến ~\text{z}~.
- ~1 \le l \le r \le n~.
Chấm điểm
- Subtask~1~ ~(30\%)~: ~n, q \le 2000~.
- Subtask~2~ ~(30\%)~: mọi truy vấn có ~r - l + 1 \le 20~.
- Subtask~3~ ~(40\%)~: không có ràng buộc bổ sung.
Bình luận