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 YES nếu ~s[l..r]~ là xâu đối xứng.
  • In NO nế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

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.