Правильная скобочная последовательность — это скобочная последовательность, которую можно превратить в корректное арифметическое выражение, вставив символы '1' и '+' между исходными символами. Например:
Давайте определим инверсию скобочной последовательности следующим образом: заменить все скобки '(' на ')', и наоборот (все скобки ')' на '('). Например, строки «()((» и «)())» являются инверсиями друг друга.
Задана правильная скобочная последовательность $$$s$$$. Ваша задача — посчитать количество таких пар целых чисел $$$(l,r)$$$ ($$$1 \le l \le r \le |s|$$$), что если заменить всю подстроку $$$s$$$ с $$$l$$$-го символа по $$$r$$$-й символ (включительно) на ее инверсию, $$$s$$$ все еще будет правильной скобочной последовательностью.
Первая строка содержит одно целое число $$$t$$$ ($$$1 \le t \le 10^4$$$) — количество наборов входных данных.
Единственная строка каждого набора содержит непустую правильную скобочную последовательность; она состоит только из символов '(' и/или ')'.
Дополнительное ограничение на входные данные: общая длина правильных скобочных последовательностей по всем наборам входных данных не превышает $$$2 \cdot 10^5$$$.
Для каждого набора входных данных выведите одно целое число — количество пар $$$(l,r)$$$, удовлетворяющих условию задачи.
4(())()()()()(()())(())
1 0 3 13
В первом примере есть только одна пара:
Во втором примере подходящих пар нет.
В третьем примере есть три подходящих пары:
Название |
---|