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

Характеристика

Характеристика

Корректным скобочным выражением (<CBV>) будем называть строку, которая определяется следующим образом:

< CBV>::= |(<CBV>)|[<CBV>]|{<CBV>}|<CBV><CBV>

Заметим, что пустая строка является корректным скобочным выражением.

Введем обозначения: A – любое правильное скобочное выражение, B и C – два любых непустых правильных скобочных выражения. Будем называть характеристикой правильного скобочного выражения числовую функцию F от строки, представляющей правильное скобочное выражение, которая вычисляется по следующим правилам:

1.F(“”)=1

2.F(“(”+A+”)”)=F(A)+1

3. F(“[”+A+”]”)=F(A)+2

4. F(“{”+A+”}”)=F(A)+3

5.F(B+C)=F(B)*F(C)

Заметим, что здесь знак + означает операцию конкатенации (сцепления) строк.

Для заданной строки подсчитать и выдать значение числовой функции F на этой строке, если она является правильной скобочной последовательностью, в противном случае выдать текст The first mistake in position, за которым через пробел следует номер первой позиции, из-за которой строка не является правильным скобочным выражением (позиции считать занумерованными слева направо начиная с 1). Очевидно, если строка закончилась без ошибок, но осталась хотя бы одна незакрытая скобка, ошибкой будем считать позицию с номером, равным длине строке плюс 1 (как бы отсутствующую по неуважительной причине – смотри пятый пример).

Ограничения

Длина строки не превосходит 60. В строке могут быть только скобки.

Входные данные

Единственная строка – исходная строка.

Выходные данные

В единственной строке – ответ задачи.

Ліміт часу 1 секунда
Ліміт використання пам'яті 64 MiB
Вхідні дані #1
Вихідні дані #1
1
Вхідні дані #2
()
Вихідні дані #2
2
Вхідні дані #3
[]
Вихідні дані #3
3
Вхідні дані #4
()[(])
Вихідні дані #4
The first mistake in position 5