Đếm dãy ngoặc

Xem PDF



Thời gian:
Clang++ 2.0s
Bộ nhớ:
Clang++ 512M

Tác giả:
Dạng bài
Điểm: 2000 Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Một dãy ngoặc hợp lệ được quy định như sau:

  • Xâu rỗng
  • A hợp lệ thì (A), [A] và {A} cũng thế.
  • A, B hợp lệ thì AB cũng thế.

Ví dụ: [({})], {} và [{},[{}] là hợp lệ, [({{([, []} và [{}])([{}] không hợp lệ.

Cho một xâu chỉ gồm ( ) { } [ ] và ?. Dấu ? có thể thay thế bằng ngoặc bất kỳ. Tính số cách thay thế mà thu được 1 dãy ngoặc hợp lệ. Bạn chỉ cần in ra 5 chữ số cuối cùng của kết quả.

Input

  • Dòng đầu là \(n\) - độ dài xâu (\(2 \leq n \leq 200\)), Dòng thứ hai là xâu mô tả.

Output

  • 5 chữ số cuối cùng của dẫy ngoặc hợp lệ thu được. (<= 5 chữ số thì in ra hết cả kết quả).

Example

Test 1

Input
6 
()()()
Output
1

Test 2

Input
10 
(?([?)]?}?
Output
3
Note

Ví dụ thứ hai, 3 dãy ngoặc hợp lệ là ({([()])}), ()([()]{}) và ([([])]{}).


Bình luận

Không có bình luận nào.