Напишите программу, которая посчитает количество смайликов в заданном тексте.
Смайликом будем считать последовательность символов, удовлетворяющую условиям:
Например, нижеприведенные последовательности являются смайликами:
:)
;---------[[[[[[[[
в то время как эти последовательности смайликами не являются (хотя некоторые из них содержат смайлики):
:-)]
;--
-)
::-(
:-()
В этой задаче надо будет посчитать количество смайликов, содержащихся в данном тексте.
Формат входных данных
Вводится одна строка текста, которая может содержать маленькие латинские буквы, пробелы, символы, которые могут встречаться в смайликах. Длина строки не превышает 200 символов.
Формат выходных данных
Выведите одно число — количество смайликов, которые встречаются в тексте.
:);------[[[[[]
2
Компания MacroHard разработала новый язык программирования PASCAL++. В этом языке имеется оператор вывода PrintLn, с помощью которого можно выводить строки любой длины. По стандарту языка, разработанному специалистами компании, некоторые комбинации символов в строке должны при выводе играть особую роль:
Комбинация | Значение |
\n | Переход на новую строку |
\t | Вывод K пробелов (1 ≤ K ≤ 7), после чего курсор оказывается на позиции, имеющей номер вида 7N+1 (первая позиция каждой строки имеет номер 1). |
\\ | Вывод символа "\". |
\XY, где X и Y – шестнадцатеричные цифры (0..9, A..F или a..f), причем \(XY \geq 20\) | Вывод символа, имеющего ASCII код XY |
К сожалению, главный программист забыл добавить в компилятор правильную процедуру форматирования. Поэтому строки выводятся прямо так, как они были записаны. Ваша задача состоит в том, чтобы преобразовать файл, полученный в результате выполнения одного или нескольких операторов PrintLn к форме, которая была задумана.
Входной файл содержит одну или несколько строк, каждая из которых является результатом работы неправильного оператора PrintLn. Размер файла не превышает 100000 байт.
(Все символы "\", встречающиеся во входном файле участвуют в создании какой-либо ключевой комбинации, т.е. сразу после любой последовательности, состоящей из нечетного количества подряд идущих символов "\", следует символ из набора {"n", "t", "\", "0".."9", "A".."F", "a".."f" }, причем в случае символа из множества {"0".."9", A".."F", "a".."f"}, затем следует еще один символ из этого множества.)
Выведите в выходной файл, как выглядел бы данный текст, если бы он был преобразован по соответствующим правилам языка PASCAL++.
Примечание: никакой специальной обработки русских букв не требуется. Они могут отображаться неправильно при отладке или при выборе неправильной кодировки просмотра входного или выходного файла.
В 2030 году Очень Известная Компания выпустила новую клавиатуру. Разработчики решили избавиться от всех ненужных кнопок и оставить только кнопки с первыми \(A\) буквами латинского алфавита. Новая клавиатура пользуется большой популярностью, поэтому Петя решил научиться печатать на ней свое любимое слово (оно не содержит букв, отличных от первых \(A\) букв латинского алфавита).
Петя считает, что он научился, когда на экране можно будет увидеть его любимое слово целиком (то есть найдется последовательность подряд идущих букв, образующих его любимое слово). Например, если Петино любимое слово - "apple", и на экране написано "pineappled", то любимое слово увидеть можно, а если на экране написано "mapplicе", то нельзя. Петя запустил текстовый редактор, и пытается, совершив как можно меньше нажатий на клавиши, добиться появления своего любимого слова.
У Пети есть друг Вася, который хочет, чтобы Петя, напротив, совершил как можно больше нажатий на клавиши - так он лучше научится. В любые моменты (как до того, как Петя начал набирать текст, так и между нажатиями Пети на клавиши) Вася может отпихивать Петю от клавиатуры и печатать на ней что угодно. При этом ни Петя, ни Вася не могут стирать уже напечатанные символы. Суммарно Вася может сделать не более \(K\) нажатий на клавиши (не обязательно подряд), после этого Петя выгонит его из комнаты, и Вася больше никак не будет участвовать в процессе обучения.
Друзья видят, что написано на экране, и знают, сколько клавиш уже нажал каждый из них. Исходя из этого и Петя, и Вася действуют наиболее оптимально.
Напишите программу, которая определит общее количество Петиных нажатий на клавиши, после которого он гарантированно увидит свое любимое слово.
В первой строке входного файла содержатся три целых числа: \(N\), \(A\), \(K\) - длина любимого слова Пети, количество кнопок на клавиатуре и максимальное количество нажатий кнопок Васей соответственно. В следующей строке содержится слово длины \(N\), состоящее из строчных латинских букв - любимое слово Пети. Слово завершает перевод строки.
Выведите одно число - искомое количество нажатий клавиш.
Тесты состоят из четырёх групп.
2 1 2 aa
2
3 4 3 abc
9
3 2 1 aab
4
Испытывая глубочайшую ненависть к e-mail адресам, Илья "цензурирует" каждый встречающийся текст, заменяя e-mail адреса словом censore, циклически записанным по длине e-mail. Однако у Ильи очень странные представления о e-mail адресах и о том, как следует "цензурировать" тексты. В представлении Ильи e-mail адрес записывается следующим образом: <имя><@><сайт><.><домен>
Имя представляет собой последовательность символов с кодами от 33 до 127. В имени не могут встречаться символы "@" или ".", если нет вложенных e-mail, но об этом речь пойдет ниже.
Сайт - последовательность латинских букв, хотя бы одна из которых должна быть заглавной.
Домен - 2 прописные латинские буквы.
Илья без проблем может написать программу, цензурирующую текст, но его беспокоит то, что в имени после символа "%" может быть другой e-mail. Например, so%another@Olymp.rume@Mcc.ru. В таком случае Илья вырезает весь e-mail адрес со всеми вложенными и заменяет в нем каждый символ, кроме "%", на количество стоящих до него в адресе символов "%". Символы % в таком случае удаляются. Пример такого цензурирования: so%an%oth@M.ruer@T.rume@Mccme.ru станет 001122222222222222222222222222.
Однако наличие символа "%" еще не говорит о том, что после него идет вложенный e-mail, то есть "%" может просто являться частью имени. Пример: some%answer@Mccme.ru станет censorecensorecensor. Помогите Илье написать такую программу.
Единственная строка, длиной не более 255 символов. Гарантируется, что вложенность неправильных e-mail не превышает 8.
Выведите строку в цензурированном виде.
!hello@World.ru
censorecensorec
so%another@Olymp.rume@Mccme.ru
00111111111111111111111111111