printРабочее место участника

printЗадачи

1769. Смайлики

Ограничения: время – 1s/2s, память – 64MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение Blockly Посылки Темы Где Обсудить (0)

Напишите программу, которая посчитает количество смайликов в заданном тексте.
Смайликом будем считать последовательность символов, удовлетворяющую условиям:
  • первым символом является либо ; (точка с запятой) либо : (двоеточие) ровно один раз
  • далее может идти символ (минус) сколько угодно раз (в том числе символ минус может идти ноль раз)
  • в конце обязательно идет некоторое количество (не меньше одной) одинаковых скобок из следующего набора: (, ), [, ]
  • внутри смайлика не может встречаться никаких других символов.
Например, нижеприведенные последовательности являются смайликами:
:)
;---------[[[[[[[[
в то время как эти последовательности смайликами не являются (хотя некоторые из них содержат смайлики):
:-)]
;--
-)
::-(
:-()
В этой задаче надо будет посчитать количество смайликов, содержащихся в данном тексте.
Вводится одна строка текста, которая может содержать маленькие латинские буквы, пробелы, символы, которые могут встречаться в смайликах. Длина строки не превышает `100\ 000` символов.
Выведите одно число — количество смайликов, которые встречаются в тексте.

Пример ввода 1

:);------[[[[[]

Пример вывода 1

2

Пример ввода 2

:-)];----;

Пример вывода 2

1

Пример ввода 3

-)(---:---

Пример вывода 3

0

Пример ввода 4

hello :-)

Пример вывода 4

1
Источник: Московская командная олимпиада школьников по программированию, 2009/10 учебный год
loading