Xóa đoạn ngoặc
Đề bài
Mô tả
Định nghĩa chuỗi ngoặc đúng:
- Chuỗi rỗng là chuỗi ngoặc đúng;
- Nếu là chuỗi ngoặc đúng thì cũng là chuỗi ngoặc đúng;
- Nếu và là hai chuỗi ngoặc đúng thì cũng là chuỗi ngoặc đúng.
Ví dụ:
- Chuỗi ngoặc đúng: "", "()", "(())", "()()", "(())()()", ...;
- Chuỗi ngoặc không đúng: "(", "()(", "())(", ")()(", ...
Cho chuỗi có độ dài , chỉ gồm hai loại ký tự '(' và ')'. Chọn hai số nguyên dương và , xoá tất cả các ký tự từ vị trí thứ đến vị trí thứ của chuỗi .
Ví dụ: "(())(())". Chọn và ; đoạn cần xoá là "))((" (từ vị trí đến vị trí ). Chuỗi sau khi xoá: "(())".
Yêu cầu: Hãy đếm số cách chọn để chuỗi sau khi xoá là một chuỗi ngoặc đúng.
Dữ liệu vào
- Dòng đầu tiên chứa số nguyên dương ;
- Dòng thứ hai chứa xâu gồm ký tự '(' và ')'.
Dữ liệu ra
Một số nguyên dương là kết quả bài toán.
Ràng buộc
- chỉ gồm các ký tự '(' và ')'
Subtasks
- Subtask 1 ( số điểm): .
- Subtask 2 ( số điểm): Chuỗi ban đầu là chuỗi ngoặc đúng.
- Subtask 3 ( số điểm): .
- Subtask 4 ( số điểm): Không có giới hạn gì thêm.
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 5 ())() |
6 | Các cách xoá thoả mãn: : ""; : "()"; : "()"; : "()"; : "()()"; : "()()". |
| 4 (()) |
2 | Các cách xoá thoả mãn: : ""; : "()". |
Bình luận