Сложность: 71%
Правильная скобочная последовательность - это последовательность скобок (символов (
и )
), в которой каждой открывающей скобке найдётся закрывающая. Представьте, например, что мы записали какое-то большое матетематическое выражение, а затем оставили от него только скобки - получится правильная скобочная последовательность.
Более формальное определение:
Вам задана скобочная последовательность длины (не обязательно правильная), и запросов вида . Для каждого запроса найдите число таких подотрезков , что , а скобочки с -ой по -ую образуют правильную скобочную последовательность.
Входные данные
В первой строке записаны числа и – длина скобочной последовательности и количество запросов ().
В следующей строке записано символов (
и )
– скобочная последовательность, в которой следует искать подотрезки.
В следующей строке записано число – количество запросов. Дальнешие строк содержат по два числа и – ограничения для -того запроса ().
Выходные данные
В ответ на каждый запрос выведите одно число – количество способов выбрать индексы и так, что что , а скобочки с -ой по -ую образуют правильную скобочную последовательность.
Подзадачи
№ | баллы | необх. подзадачи | ограничения |
1 | 8 | - | |
2 | 12 | 1 | |
3 | 15 | 2 | |
4 | 10 | - | |
5 | 9 | - | Последовательность является конкатенацией любого количества последовательностей |
6 | 20 | 2 | |
7 | 26 | 4, 5, 6 | Нет дополнительных ограничений |
STDIN | STDOUT |
6 2 ()(()) 2 6 1 4 | 2 1 |