괄호 복구
시간 제한1초메모리 제한512 MB
길이가 L인 괄호 문자열 T 중, S와 각 문자열의 순서를 유지해 합쳤을 때 올바른 괄호 문자열이 되는 T의 개수를 10^9+7로 나눈 나머지로 구합니다.
문제
여는 괄호 (와 닫는 괄호 )로 이루어진 문자열 가 있다. 이때 다음 조건을 만족하는 문자열 의 개수를 구하려고 한다.
- 조건 1. 는 여는 괄호와 닫는 괄호로 이루어진 길이 인 문자열이다.
- 조건 2. 의 문자들과 의 문자들을 각각 내부에서의 순서를 유지하면서 합쳐서 올바른 괄호 문자열이 되게 할 수 있다.
예를 들어, = (()이고 일 때 = ))(이면 1, 2, 6번째 문자를 의 문자로 하고 3, 4, 5번째 문자를 의 문자로 하여 (())()를 만들 수 있으므로 는 조건을 만족한다.
그러나 = )()이고 일 때 = )((이면 와 를 합쳐 올바른 괄호 문자열을 만들 수 없으므로 는 조건을 만족하지 않는다.
조건을 만족하는 의 개수가 많아질 수 있으므로, 로 나눈 나머지를 구한다.
입력
첫 번째 줄에 문자열 가 주어진다. 는 길이가 1 이상 3,000 이하이며 (와 )로만 구성되어 있다.
두 번째 줄에 자연수 ()이 주어진다.
출력
첫 번째 줄에 문제의 정답을 출력한다.
힌트
위 입력 예제의 경우, 조건을 만족하는 는 ())와 )()의 2가지가 가능하다.