Cho một dãy ngoặc gồm các loại ngoặc (), [] và {}.
Một dãy ngoặc được coi là đúng nếu:
Bậc của dãy ngoặc được định nghĩa như sau:
Nhiệm vụ của bạn: Cho xâu S độ dài N(N chẵn) chỉ chứa các kí tự ‘(‘, ‘)’, ‘[‘, ‘]’, ‘{‘, ‘}’ và ‘*’. Cần thay thế vị trí ‘*’ bằng các kí tự ‘(‘, ‘)’, ‘[‘, ‘]’, ‘{‘, ‘}’ sao cho dãy S trở thành dãy ngoặc đúng bậc chính xác bằng K. Đếm số cách thay thế được?
Input: Dòng đầu chứa 2 số N và K ( N <= 70).
Dòng 2 chứa xâu S chỉ chứa các kí tự nêu trên.
Output: Số cách tìm được. In kết quả là phần dư cho 10^9 + 7.
Example:
input | output |
4 2 (**) |
3 |
|
|
*Trong ví dụ 1, có 3 cách thay là : (()), ([]), ({}).