#M1. 括号序列(bracket)
括号序列(bracket)
^^# Background
题目描述 给一个由左右括号构成的字符串s,对于每一个位置i,输出有多少个子串,满足这个子串是一个合法的括号序列,并且i这个位置在子串中。 其中合法的括号序列定义如下: • 空串是合法的。 • 如果S是合法的,那么(S)也是合法的。 • 如果U,V是合法的,那么UV也是合法的。
Format
Input
一行,一个由左右括号构成的字符串S。
Output
由于答案可能很大,输出∑(i ⋅ ans~i~ mod (10^9^ + 7))即可,其中ans~i~表示第i个位置的答案。注意这里我们要先取模,再相加。
Samples
(()())
49
样例解释
这里的ans分别为1,3,3,3,3,1.
样例输入输出2
见下发文件
Limitation
共十组数据。 对于 30%的数据,保证|S| ≤ 5000。对于 70%的数据,保证|S| ≤ 10^6^。对于 100%的数据,保证|S| ≤ 10^7^。