I. Длина правильной подпоследовательности
Как классная задача про скобки, но выводить надо только длину наибольшей правильной подпоследовательности.
Восстановление отпадает, а значит отпадает и таблица решений - остаётся одна таблица длин. Это ровно то, ради чего стоит уметь отделять «что мы храним» от «что мы выводим»: памяти становится вдвое меньше, а код короче.
Переход удобнее записать через первый символ отрезка. Он либо не входит в ответ, либо с чем-то сомкнут:
Такая запись не даёт выигрыша в асимптотике - она по-прежнему , - но избавляет от лишнего перебора разрезов и заметно уменьшает константу.
Кубическая асимптотика тут неизбежна: скобок трёх видов, и «сомкнуть с первым» приходится перебирать. Именно поэтому длина строки ограничена семью сотнями, а не тысячами.
Формат ввода
Одна строка из круглых, квадратных и фигурных скобок. Длина не превосходит 700.
Формат вывода
Одно число - длина наибольшей правильной скобочной подпоследовательности.
Примеры
([)]
2
)(
0