Модуль: Правильная скобочная последовательность (ПСП)


3. Тильда-омега-лямбда-исчисление

☰ Теория

В случае наличия скобок нескольких типов всё становится чуть сложнее. Мы создаём стек, выполняющий роль той переменной balance. Это нужно, поскольку скобки не могут перекрываться. Проходя по строке и встречая открывающую скобку, мы кладём её в стек. Встречая закрывающую, мы пытаемся вынуть из стека открывающую скобку этого типа. Если на стеке лежит скобка другого типа, последовательность неправильная. Если в конце стек оказался непустым, последовательность также неправильная. 

Тильда-омега-лямбда-исчисление - ещё более инновационная разработка "British Scientists, Inc" в сфере функционального программирования. Его отличие от омега-лямбда-исчисления только в возможности ставить квадратные и фигурные скобки. Планировались также скобки в форме слоников, но стандарт ЮНИКОД у компании изменить не получилось. 
На вход подаётся тильда-омега-лямбда-выражение длиной не более 10^7 символов. Нужно вывести результат его тильда-иззи-редукции, работающей так же, как и иззи-редукция для омега-лямбда-выражений, но с учётом квадратных и фигурных скобок.

Напомним, иззи-редукция - одна из операций над такими выражениями. При её выполнении проверяется, является ли скобочная последовательность в выражении правильной. Термы при этом игнорируются. Если последовательность правильная - она превращается в терм gg, если нет - в терм wp. 
 

 

Примеры
Входные данные Выходные данные
1 main{izzy[lol](ttt)} gg

Напишите программу
Auto
       

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

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