hr又养了一群奶牛,他通常会给奶牛打上圆形烙印。
但是烙印坏了,所以他现在只能给奶牛打上括号形 – ( 的烙印了。
他的农场中有两种奶牛:荷斯坦牛和根西岛牛。
他给每头奶牛打上括号形状的烙印。
根据奶牛所面向的方向,这可能看上去像是左括号或右括号。
hr的 N 头奶牛排成一排,每头朝向任意方向,因此奶牛上的标记看上去像是长度为 N 的一串括号序列。
看着这个序列,约翰发现如果他从左到右扫过所有荷斯坦牛,按它们在序列中出现的顺序,就可以得到一串平衡的括号。
根西岛牛也是如此!
为了确定这是否是一个罕见的情况,请帮助约翰计算共有多少种指定奶牛品种的不同方案可以使上述特点成立。
有若干种定义括号字符串是否“平衡”的方式。
最简单的定义为字符串所包含的 ( 和 ) 数量必须相同,并且对于字符串的任意前缀,所包含的 ( 的数目都不少于 ) 的数目。
例如,以下字符串都是平衡的:
( )
( ( ) )
() ( ( ) ( ) )
以下则不是:
) (
( ) ) (
( ( ( ) ) ) )
输出能够满足条件的指定奶牛品种的不同方案的数量对 20122012 取模后的结果。
可以所有奶牛都为同一个品种。
(())
6
样例解释:
下面是所有可行的奶牛品种指定方案:
(()) HHHH (()) GGGG (()) HGGH (()) GHHG (()) HGHG (()) GHGH