THHV 2025 - DX13 - 10 - Biển số xe

Xem dạng PDF

Gửi bài giải

Điểm: 40,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 1G
Input: stdin
Output: stdout

Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Output Only, Pascal, PyPy, Python, Scratch, TEXT

Trong trường hợp đề bài hiển thị không chính xác, bạn có thể tải đề bài tại đây: Đề bài

Một thành phố quản lý danh sách ~n~ biển số xe theo thứ tự đăng ký. Mỗi biển số xe có một kí tự mã thuộc đoạn ['a'..'z'], mỗi ký tự mã tượng trưng cho một loại xe.

Trong quá trình vận hành, có ~m~ thao tác xảy ra, thuộc hai loại:

  1. Cập nhật biển số: Cảnh sát phát hiện sai sót và yêu cầu sửa ký tự mã của biển số tại vị trí thứ ~k~ thành ký tự 'x'.

  2. Kiểm tra đặc biệt: Với đoạn danh sách từ vị trí ~a~ đến ~b~, cần kiểm tra xem dãy biển số trong đoạn này có tạo thành một chuỗi đối xứng (palindrome) hay không.

Yêu cầu: Bạn phải thực hiện toàn bộ ~m~ thao tác, và với mỗi thao tác loại ~(2)~, hãy in ra kết quả.

Input

  • Dòng đầu: hai số nguyên ~n~ và ~m~ tương ứng là số lượng biển số và số thao tác.

  • Dòng thứ hai: một chuỗi dài ~n~ ký tự thuộc đoạn ['a'..'z'], là danh sách kí tự mã của các biển số hiện tại.

  • Tiếp theo là ~m~ dòng, mỗi dòng thuộc một trong hai dạng:

    • 1 ~k~ ~x~ - Cập nhật kí tự mã của biển số ở vị trí ~k~ thành kí tự 'x'.

    • 2 ~a~ ~b~ - Kiểm tra xem dãy kí tự mã từ vị trí ~a~ đến ~b~ có phải đối xứng không.

Output

  • Với mỗi truy vấn loại ~2~, in ra:

    • YES nếu đoạn đó đối xứng,

    • NO nếu không.

Scoring

Subtask Điểm Ràng buộc
1 ~40\%~ ~n, m \le 2000~
2 ~30\%~ ~n, m \le 2 \cdot 10^5~ và không có thao tác loại ~1~
3 ~30\%~ ~n, m \le 2 \cdot 10^5~

Sample Input 1

7 5
aybabtu
2 3 5
1 3 x
2 3 5
1 5 x
2 3 5

Sample Output 1

YES
NO
YES

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.