Cho một chuỗi gồm các ngoặc vuông và ngoặc tròn, có thể thực hiện thay đổi dấu ngoặc bằng các thao tác sau:
Đổi hướng của ngoặc từ mở thành đóng hoặc ngược lại nhưng không thay đổi tính chất của ngoặc, thao tác này có chi phí là 0.
Ví dụ: có thể đổi
(thành)và)thành(; có thể đổi[thành]và]thành[.Đổi bất kì ngoặc vuông thành ngoặc tròn mà không thay đổi hướng, thao tác này có chi phí là 1.
Ví dụ: có thể đổi
[thành(nhưng không được(thành[; tương tự, có thể đổi]thành)nhưng không được)thành].
Các thao tác này có thể được thực hiện với bất kì thứ tự nào cũng như không giới hạn số lần thực hiện.
Cho một chuỗi S có độ dài N và Q câu hỏi có dạng "l r" $(1 \leq l < r \leq N)$. Với mỗi đoạn $S[l .. r]$ hãy cho biết chi phí thấp nhất để sửa thành một dãy ngoặc hợp lệ.
Một dãy ngoặc được coi là hợp lệ nếu thoả mãn những quy tắc sau:
- Dãy rỗng là một dãy ngoặc hợp lệ.
- Nếu "s" là một chuỗi ngoặc đúng, thì "(s)" và "[s]" là một chuỗi ngoặc hợp lệ.
- Nếu "s" và "t" là hai chuỗi ngoặc hợp lệ, thì "st" là một chuỗi ngoặc hợp lệ.