Правильная скобочная последовательность — это скобочная последовательность, которую можно превратить в корректное арифметическое выражение, вставив символы «1» и «+» между исходными символами. Например:
Вам даны $$$n$$$ скобочных последовательностей $$$s_1, s_2, \dots, s_n$$$ (не обязательно правильных) и четное целое число $$$k$$$. Ваша задача — разбить их на группы таким образом, чтобы:
Какое наименьшее количество групп можно получить? Если это невозможно сделать для любого количества групп, сообщите об этом. В противном случае выведите группы и любую подходящую правильную скобочную последовательность для каждой группы. Если есть несколько ответов с наименьшим количеством групп, выведите любой из них.
В первой строке записаны два целых числа $$$n$$$ и $$$k$$$ ($$$1 \le n \le 50$$$; $$$2 \le k \le 50$$$; $$$k$$$ четное).
В $$$i$$$-й из следующих $$$n$$$ строк записана скобочная последовательность $$$s_i$$$ ($$$2 \le |s_i| \le k$$$). Она состоит только из символов '(' и ')'.
Если невозможно разбить все скобочные последовательности на группы в соответствии с правилами, выведите $$$-1$$$.
В противном случае выведите наименьшее возможное количество групп $$$m$$$ в первой строке. Затем должно следовать $$$m$$$ блоков данных:
Ни одна из этих скобочных последовательностей не должна быть подстрокой выбранной правильной скобочной последовательности. Каждый индекс от $$$1$$$ до $$$n$$$ должен принадлежать ровно одной группе.
Если есть несколько ответов с наименьшим $$$m$$$, выведите любой из них.
3 6)))((((())
1 (()()) 3 1 2 3
4 6(()()(())((((((
2 (())() 1 2 ()()() 3 1 4 3
2 6())(
-1
| Название |
|---|


