EduBrick

J. Антон и школа

3000 мс · 256 МБ · всё или ничего

Скобочную последовательность назовём простой правильной, если она непуста, её длина чётна, первая половина состоит только из символов (, а вторая — только из ). Например, ((())) простая правильная, а (()) и ()() — нет.

Дана скобочная последовательность ss. Посчитайте, сколько у неё различных подпоследовательностей, являющихся простыми правильными.

Подпоследовательность получается вычёркиванием символов. Две подпоследовательности различны, если различаются множества вычеркнутых позиций.

Перебирать длину и позиции нельзя — их слишком много. Зафиксируйте последнюю открывающую скобку ответа: тогда всё, что слева, выбирается из открывающих до неё, а всё, что справа, — из закрывающих после.

Формат ввода

Одна строка содержит непустую последовательность из символов ( и ) длиной не более 2⋅1052 \cdot 10^5.

Формат вывода

Одно число — количество простых правильных подпоследовательностей по модулю 109+710^9 + 7.

Примеры

ввод
)(()()
вывод
6
ввод
()()()
вывод
7
ввод
)))
вывод
0
Войдите, чтобы отправлять решения.