2.
Омега-лямбда-исчисление
Правильные скобочные последовательности состоят из открывающих и закрывающих скобок одного или нескольких типов, причём для каждой открывающей скобки есть закрывающая, и (в случае нескольких типов) их типы не перекрываются.
Правильные СП:
( ( ) ) ( ) ( )
{ } [ ( ) ] ( )
{ [ ( { } ) ] }
Неправильные СП:
) ) ( ( ) ) ( (
{ [ ( ] ) }
( ( ] }
Чтобы проверить, является ли скобочная последовательность из скобок одного типа, достаточно проверять баланс.
То есть мы заводим переменную, равную нулю (balance). Затем мы пробегаем по строке (если вы не умеете это делать - БЕГИТЕ, ГЛУПЦЫ!), увеличивая balance при встрече открывающей скобки и уменьшая - при закрывающей. Если на любом этапе баланс становится отрицательным или в конце он не равен нулю, значит, последовательность неправильная.
Омега-лямбда-исчисление - инновационная разработка "British Scientists, Inc" в сфере формальной логики. Любое выражение омега-лямбда-исчисления состоит из круглых скобок и термов (термом может быть любая последовательность из букв латинского алфавита).
Иззи-редукция - одна из операций над такими выражениями. При её выполнении проверяется, является ли скобочная последовательность в выражении правильной. Термы при этом игнорируются. Если последовательность правильная - она превращается в терм gg
, если нет - в терм wp
.
На вход подаётся омега-лямбда-выражение длиной не более 107 символов. Нужно вывести результат его иззи-редукции.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
a(b(xx)f(g(x))m(y)) |
gg |
Напишите программу
Auto