CF1015F.Bracket Substring

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

You are given a bracket sequence ss (not necessarily a regular one). A bracket sequence is a string containing only characters '(' and ')'.

A regular bracket sequence is a bracket sequence that can be transformed into a correct arithmetic expression by inserting characters '1' and '+' between the original characters of the sequence. For example, bracket sequences "()()" and "(())" are regular (the resulting expressions are: "(1)+(1)" and "((1+1)+1)"), and ")(", "(" and ")" are not.

Your problem is to calculate the number of regular bracket sequences of length 2n2n containing the given bracket sequence ss as a substring (consecutive sequence of characters) modulo 109+710^9+7 ( 10000000071000000007 ).

输入格式

The first line of the input contains one integer nn ( 1n1001 \le n \le 100 ) — the half-length of the resulting regular bracket sequences (the resulting sequences must have length equal to 2n2n ).

The second line of the input contains one string ss ( 1s2001 \le |s| \le 200 ) — the string ss that should be a substring in each of the resulting regular bracket sequences ( s|s| is the length of ss ).

输出格式

Print only one integer — the number of regular bracket sequences containing the given bracket sequence ss as a substring. Since this number can be huge, print it modulo 109+710^9+7 ( 10000000071000000007 ).

输入输出样例

  • 输入#1

    5
    ()))()
    

    输出#1

    5
    
  • 输入#2

    3
    (()
    

    输出#2

    4
    
  • 输入#3

    2
    (((
    

    输出#3

    0
    

说明/提示

All regular bracket sequences satisfying the conditions above for the first example:

  • "(((()))())";
  • "((()()))()";
  • "((()))()()";
  • "(()(()))()";
  • "()((()))()".

All regular bracket sequences satisfying the conditions above for the second example:

  • "((()))";
  • "(()())";
  • "(())()";
  • "()(())".

And there is no regular bracket sequences of length 44 containing "(((" as a substring in the third example.

首页