eolymp
bolt
Спробуйте наш новий інтерфейс для відправки розв'язків
Задачі

Магічні дужки

Магічні дужки

У мові програмуванея ЛІСП \textit{\textbf{все}} пишеться у збалансованих дужках (ЯК ТУТ). А це значить, що ЛІСП-код іноді містить довгі відрізки закриваючих дужок "\textbf{)))...)}". Це буває дуже втомливо для ЛІСП-програміста, коли потрібно отримати таку кількість закриваючих дужок '\textbf{)}', яка у точності відповідає кількості відкритих дужок '\textbf{(}'. Щоб уникнути можливих у таких випадках помилок синтаксису, у деяких ділектах мови ЛІСП ввели \textit{\textbf{магічну закриваючу дужку}} '\textbf{\]}', яка замінює \textit{одну або декілька закриваючих дужок ')' для збалансування усіх раніше використаних відкриваючих дужок '}\textbf{(}\textit{'}. Але тоді компілятор ЛІСП повинен вміти підраховувати скільки закриваючих дужок '\textbf{)}' кожна магічна дужка '\textbf{\]}' дійсно замінила. Як? Напишіть програму, яка отримує рядок, який складається з відкриваючих, закриваючих та магічних дужок, і яка підраховує для кожного входження магічної дужки якій кількості відкритих дужок вона відповідає. У випадку наявності декількох розв'язків програма повинна вивести один з них. \InputFile Первая строка содержит два целых числа \textbf{0} ≤ \textbf{N} ≤ \textbf{10000000} и \textbf{0} ≤ \textbf{M} ≤ \textbf{5000000} разделённых пробелом. Первое число \textbf{N} - это длина входной строки. Второе число \textbf{M} - это количество магических закрывающих скобок в строке. Оставшаяся часть входного файла начинаается во второй строке и содержит информацию о строке длины \textbf{N} и состоит из симовлов '\textbf{(}', '\textbf{)}' и '\textbf{\]}'. Сивол '\textbf{\]}' входит именно \textbf{M} ≤ \textbf{N} раз в эту строку. Эта строка разбита на подстроки длиной не более \textbf{72} символов для удобства чтения. \OutputFile Первая строка содержит число \textbf{0}' или '\textbf{1}'. Число '\textbf{0}' обозначает, что входные данные не могут быть сбалансированы (например, строка, состоящая из одной единственной закрывающей магической скобки "\textbf{\]}" очевидно, что не может быть сбалансирована). В этом случае больше ничего не выводится. Число '\textbf{1}' означает, что входные данные могут быть сбалансированы. В этом случае в выходных данных содержится \textbf{M} дополнительных строк. Первая допополнительная строка содердит число \textbf{C_1} ≥ \textbf{1} показывающее, сколько закрывающих скобок '\textbf{)}' заменяет \textbf{1}-я магическая скобка '\textbf{\]}' во входных данных. \textbf{2}-я дополнительная строка содержит соответствующее число \textbf{C_2} ≥ \textbf{1} для \textbf{2}-й магической закрывающей скобки '\textbf{\]}' во входных данныхз и т.д.. Если есть много способов, которыми данная строка может быть сбалансирована, ваша программа должна вывести один из них. \Note Пример входных данных описывает строку из \textbf{8} симовлов, из которыз \textbf{2} магические. Выходные данные содержат один из способов балансировки этой входной строки: первая магическая скобка соответствует \textbf{3}-м открываюзщим скобкам, а вторая - \textbf{1}-й открывающей скобке. И действительно в этом случае строка \textbf{( ( ((( ))) ) )} является правильно сбалансированной, и закрывающие скобки соответствуют нужному количеству закрывающих скобок, соответсвующие закрывающие символы подчёркнуты.
Ліміт часу 1 секунда
Ліміт використання пам'яті 32 MiB
Вхідні дані #1
8 2
(((((])]
Вихідні дані #1
1
3
1
Джерело BOI-2005