Олимпиадный тренинг

Задача . E. Почти правильная скобочная последовательность


Задача

Темы: реализация *1900

Задана скобочная последовательность \(s\), состоящая из \(n\) открывающих '(' и закрывающих ')' скобок.

Правильной скобочной последовательностью называется скобочная последовательность, которую можно преобразовать в корректное арифметическое выражение путем вставок между ее символами символов '1' и '+'. Например, скобочные последовательности «()()», «(())» — правильные (полученные выражения: «(1)+(1)», «((1+1)+1)»), а «)(» и «(» — нет.

Вы можете изменить тип какой-либо скобки \(s_i\). Это значит, что если \(s_i = \) ')', то вы можете заменить ее на '(' и наоборот.

Ваша задача — посчитать количество позиций \(i\) таких, что если вы измените тип \(i\)-й скобки, то получившаяся скобочная последовательность станет правильной.

Входные данные

Первая строка входных данных содержит одно целое число \(n\) (\(1 \le n \le 10^6\)) — длину скобочной последовательности.

Вторая строка входных данных содержит строку \(s\), состоящую из \(n\) открывающих '(' и закрывающих ')' скобок.

Выходные данные

Выведите одно целое число — количество позиций \(i\) таких, что если вы измените тип \(i\)-й скобки, то получившаяся скобочная последовательность станет правильной.


Примеры
Входные данныеВыходные данные
1 6
(((())
3
2 6
()()()
0
3 1
)
0
4 8
)))(((((
0

time 3000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя