---> 3 задач <---
Источники --> Командные олимпиады --> Московская командная олимпиада
    8 класс(18 задач)
    9-11 классы(228 задач)
Страница: 1 Отображать по:
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
64 megabytes

Ученику второго класса рассказали правила, как нужно выполнять арифметические действия, чтобы вычислить значение арифметического выражения, состоящего из чисел, скобок и знаков арифметических операций + (сложение) и * (умножение). После этого ему дали упражнения — несколько задач, в которых требуется расставить порядок выполнения действий. Помогите ему.

Правила вычисления выражения, рассказанные ученику, звучат так. Если в выражении вообще нет скобок, то сначала выполняются все операции умножения слева направо, а затем — операции сложения также слева направо. Если же в выражении есть скобки, то находится самая левая пара скобок (открывающая и закрывающая), содержащая внутри себя бесскобочное выражение, которое может быть вычислено по вышеописанным правилам. Дальше это выражение (вместе со скобками) мысленно удаляется из выражения и заменяется числом – результатом. Если в выражении остались скобки, то процедура повторяется.

Напишите программу, которая для корректного выражения будет определять порядок выполнения арифметических действий. Поскольку сами числа в этой задаче нам будут не существенны, мы заменим их на знаки #.

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

Во входном файле записана одна строка, состоящая из символов #, +, *, (, ). Длина строки не превышает 250 символов. Строка соответствует правильному арифметическому выражению.

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

В выходной файл нужно вывести ту же строку, заменив знаки операций + и * в ней натуральными числами, задающими порядок выполнения действий в соответствии с описанными правилами.

Примеры
Входные данные
#+#*#
Выходные данные
#2#1#
Входные данные
#+#+(#+#)
Выходные данные
#2#3(#1#)
Входные данные
#+(#+#*#)*#+#
Выходные данные
#4(#2#1#)3#5#
Входные данные
#+#+#+#+#+#+#+#+#+#+#
Выходные данные
#1#2#3#4#5#6#7#8#9#10#
Входные данные
#+#+(#+(#+#))+(#+#)
Выходные данные
#4#5(#2(#1#))6(#3#)
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
64 megabytes

Напишите программу, которая посчитает количество смайликов в заданном тексте.

Смайликом будем считать последовательность символов, удовлетворяющую условиям:

* первым символом является либо ; (точка с запятой) либо : (двоеточие) ровно один раз
* далее может идти символ – (минус) сколько угодно раз (в том числе символ минус может идти ноль раз)
* в конце обязательно идет некоторое количество (не меньше одной) одинаковых скобок из следующего набора: (, ), [, ].
* внутри смайлика не может встречаться никаких других символов.

Например, нижеприведенные последовательности являются смайликами:

:)

;---------[[[[[[[[

в то время как эти последовательности смайликами не являются (хотя некоторые из них содержат смайлики):

:-)]

;--

-)

::-(

:-()

В этой задаче надо будет посчитать количество смайликов, содержащихся в данном тексте.

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

Вводится одна строка текста, которая может содержать маленькие латинские буквы, пробелы, символы, которые могут встречаться в смайликах. Длина строки не превышает 100 000 символов.

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

Выведите одно число — количество смайликов, которые встречаются в тексте.

Примеры
Входные данные
:);------[[[[[]
Выходные данные
2
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
64 megabytes

Напишите программу, которая посчитает количество смайликов в заданном тексте.

Смайликом будем считать последовательность символов, удовлетворяющую условиям:

  • первым символом является либо ; (точка с запятой) либо : (двоеточие) ровно один раз
  • далее может идти символ (минус) сколько угодно раз (в том числе символ минус может идти ноль раз)
  • в конце обязательно идет некоторое количество (не меньше одной) одинаковых скобок из следующего набора: (, ), [, ].
  • внутри смайлика не может встречаться никаких других символов.

Например, нижеприведенные последовательности являются смайликами:

:)

;---------[[[[[[[[

в то время как эти последовательности смайликами не являются (хотя некоторые из них содержат смайлики):

:-)]

;--

-)

::-(

:-()

В этой задаче надо будет посчитать количество смайликов, содержащихся в данном тексте.

Формат входных данных

Вводится одна строка текста, которая может содержать маленькие латинские буквы, пробелы, символы, которые могут встречаться в смайликах. Длина строки не превышает 200 символов.

Формат выходных данных

Выведите одно число — количество смайликов, которые встречаются в тексте.

Примеры
Входные данные
:);------[[[[[]
Выходные данные
2

Страница: 1 Отображать по:
Выбрано
:
Отменить
|
Добавить в контест