#SGM0000018. Kiểm tra dãy ngoặc (Parenthesis Checking)
Kiểm tra dãy ngoặc (Parenthesis Checking)
Kiểm tra dãy ngoặc (Parenthesis Checking)
Nguồn: AtCoder
Phiên bản: Phước Hưng OJ Extended
Cho chuỗi độ dài chỉ gồm ( và ). Có truy vấn:
1 l r: hoán đổi ký tự ở vị trí và .2 l r: kiểm tra chuỗi con liên tiếp có phải là một dãy ngoặc đúng hay không.
Một dãy ngoặc đúng phải có tổng cân bằng cuối cùng bằng và khi quét từ trái sang phải, số ngoặc đóng chưa bao giờ vượt số ngoặc mở.
Input
Dòng đầu chứa .
Dòng thứ hai chứa .
dòng tiếp theo chứa truy vấn; luôn có và có ít nhất một truy vấn loại 2.
Output
Với mỗi truy vấn loại 2, in Yes nếu chuỗi con là dãy ngoặc đúng, ngược lại in No.
Subtask
- Subtask 1 — 20%: .
- Subtask 2 — 30%: .
- Subtask 3 — 50%: .
Ví dụ
Input
5 3
(())(
2 1 4
2 1 2
2 4 5
Output
Yes
No
No
Giải thích
Chuỗi con (()) là đúng, còn (( và )( đều không phải dãy ngoặc đúng.