测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A1106. [COCI-2007_2008-contest1]#6 ZAPIS

编程题 省选/NOI-

题目描述

A regular bracket-sequence is a string of characters consisting only of opening and closing brackets, and satisfying the following conditions:
• An empty string is a regular bracket-sequence.
• If A is a regular bracket-sequence, then (A), [A] and {A} are also regular bracket-sequences.
• If A and B are regular bracket-sequences, then AB is also a regular bracket-sequence.
For example, the sequences [({})], [](){} i [{}]()[{}] are regular, but the sequences [({{([, []({)} and [{}])([{}] are not.
Ivica has found a string which looks like it could be a regular bracket-sequence. Some of the characters have become smudged and illegible, and could have been any character.
Write a program that calculates how many ways the illegible characters in the string can be replaced by brackets so that the result is a regular bracket-sequence. This number can be very large, so output only its last 5 digits.

输入格式

The first line contains an even integer N (2 ≤ N ≤ 200), the length of the string.
The second line contains the string. Illegible characters are represented by the '?' character.

输出格式

Output the number of regular bracket-sequences the string could have read.

输入输出样例

输入 #1
6 
()()() 
输出 #1
1
输入 #2
10 
(?([?)]?}? 
输出 #2
3
输入 #3
16 
???[???????]????
输出 #3
92202 

说明/提示

In the second example, the three matching regular bracket-sequences are ({([()])}), ()([()]{})
and ([([])]{}).
上一题 去做题 下一题