Турнир Архимеда(52 задач)
Кировские командные турниры(8 задач)
Барнаульские командные турниры(10 задач)
Московская командная олимпиада(246 задач)
Командные чемпионаты школьников Санкт-Петербурга по программированию(167 задач)
ВКОШП(180 задач)
Напишите программу, которая посчитает количество смайликов в заданном тексте.
Смайликом будем считать последовательность символов, удовлетворяющую условиям:
* первым символом является либо ; (точка с запятой) либо : (двоеточие) ровно один раз
* далее может идти символ – (минус) сколько угодно раз (в том числе символ минус может идти ноль раз)
* в конце обязательно идет некоторое количество (не меньше одной) одинаковых скобок из следующего набора: (, ), [, ].
* внутри смайлика не может встречаться никаких других символов.
Например, нижеприведенные последовательности являются смайликами:
:) ;---------[[[[[[[[ в то время как эти последовательности смайликами не являются (хотя некоторые из них содержат смайлики): :-)] ;-- -) ::-( :-() В этой задаче надо будет посчитать количество смайликов, содержащихся в данном тексте.
Вводится одна строка текста, которая может содержать маленькие латинские буквы, пробелы, символы, которые могут встречаться в смайликах. Длина строки не превышает 100 000 символов.
Выведите одно число — количество смайликов, которые встречаются в тексте.
:);------[[[[[]
2
Напишите программу, которая посчитает количество смайликов в заданном тексте.
Смайликом будем считать последовательность символов, удовлетворяющую условиям:
Например, нижеприведенные последовательности являются смайликами:
:)
;---------[[[[[[[[
в то время как эти последовательности смайликами не являются (хотя некоторые из них содержат смайлики):
:-)]
;--
-)
::-(
:-()
В этой задаче надо будет посчитать количество смайликов, содержащихся в данном тексте.
Формат входных данных
Вводится одна строка текста, которая может содержать маленькие латинские буквы, пробелы, символы, которые могут встречаться в смайликах. Длина строки не превышает 200 символов.
Формат выходных данных
Выведите одно число — количество смайликов, которые встречаются в тексте.
:);------[[[[[]
2
Однажды, разбирая старые книги на чердаке, школьник Вася нашёл англо-латинский словарь. Английский он к тому времени знал в совершенстве, и его мечтой было изучить латынь. Поэтому попавшийся словарь был как раз кстати.
К сожалению, для полноценного изучения языка недостаточно только одного словаря: кроме англо-латинского необходим латинско-английский. За неимением лучшего он решил сделать второй словарь из первого.
Как известно, словарь состоит из переводимых слов, к каждому из которых приводится несколько слов-переводов. Для каждого латинского слова, встречающегося где-либо в словаре, Вася предлагает найти все его переводы (то есть все английские слова, для которых наше латинское встречалось в его списке переводов), и считать их и только их переводами этого латинского слова.
Помогите Васе выполнить работу по созданию латинско-английского словаря из англо-латинского.
В первой строке содержится единственное целое число N — количество английских слов в словаре. Далее следует N описаний. Каждое описание содержится в отдельной строке, в которой записано сначала английское слово, затем отделённый пробелами дефис (символ номер 45), затем разделённые запятыми с пробелами переводы этого английского слова на латинский. Переводы отсортированы в лексикографическом порядке. Порядок следования английских слов в словаре также лексикографический.
Все слова состоят только из маленьких латинских букв, длина каждого слова не превосходит 15 символов. Общее количество слов на входе не превышает 100 000.
Выведите соответствующий данному латинско-английский словарь, в точности соблюдая формат входных данных. В частности, первым должен идти перевод лексикографически минимального латинского слова, далее — второго в этом порядке и т.д. Внутри перевода английские слова должны быть также отсортированы лексикографически.
«Лексикографический порядок» означает, что слова идут по алфавиту. Иначе говоря, если у двух слов A и B несколько первых символов совпадают, то раньше идет то, у которого первая буква после общей части идет в алфавите раньше (например, слова solution и solve идут именно в таком порядке, так как первые 3 буквы в этих словах совпадают, а 4-я буква u в слове solution идет по алфавиту раньше буквы v слова solve). Если слово A является началом слова B, то раньше идет слово A (например, сначала идет слово school, а затем слово schoolboy).
3 apple - malum, pomum, popula fruit - baca, bacca, popum punishment - malum, multa
7 baca - fruit bacca - fruit malum - apple, punishment multa - punishment pomum - apple popula - apple popum - fruit
Однажды, разбирая старые книги на чердаке, школьник Вася нашёл англо-латинский словарь. Английский он к тому времени знал в совершенстве, и его мечтой было изучить латынь. Поэтому попавшийся словарь был как раз кстати.
К сожалению, для полноценного изучения языка недостаточно только одного словаря: кроме англо-латинского необходим латинско-английский. За неимением лучшего он решил сделать второй словарь из первого.
Как известно, словарь состоит из переводимых слов, к каждому из которых приводится несколько слов-переводов. Для каждого латинского слова, встречающегося где-либо в словаре, Вася предлагает найти все его переводы (то есть все ангийские слова, для которых наше латинское встречалось в его списке переводов), и считать их и только их переводами этого латинского слова.
Помогите Васе выполнить работу по созданию латинско-английского словаря из англо-латинского.
В первой строке содержится единственное целое число N (1 ≤ N ≤ 100) — количество английских слов в словаре. Далее следует N описаний. В первой строке каждого описания содержится английское слово. В следующей строке записано единственное число K ≥ 1 — количество переводов. В следующих K строках приведены переводы текущего английского слова на латинский, по одному в каждой строке.
Все слова состоят только из маленьких латинских букв. Общее количество слов на входе не превышает 100. Длина каждого слова не превосходит 15 символов.
Выведите соответствующий данному латинско-английский словарь в следующем формате. В первую строку запишите единственное целое число N — количество латинских слов в словаре. Далее выведите N описаний, каждое описание в отдельной строке: сначала латинское слово, затем отделённый пробелами дефис (символ номер 45), затем разделённые запятыми с пробелами переводы этого латинского слова на английский.
При этом порядок английских слов внутри перевода одного латинского может быть каким угодно. Кроме того, порядок следования латинских слов для перевода в словаре также не важен.
3 apple 3 malum pomum popula fruit 3 baca bacca popum punishment 2 malum multa
7 baca - fruit bacca - fruit malum - apple, punishment multa - punishment pomum - apple popula - apple popum - fruit
Ася Вуткина - известный футбольный комментатор. Будучи профессионалом своего дела, Ася тщательно следит за всеми матчами всех европейских чемпионатов.
Благодаря накопленной информации, Ася может во время трансляции матча сообщить какую-нибудь интересную статистику, например: "Индзаги третий матч подряд забивает гол на 9-й минуте" или "Матерацци никогда не открывает счет в матче".
Но мозг Аси не безграничен, а помнить всю историю футбола просто невозможно. Поэтому Ася попросила вас написать программу, которая собирает статистику матчей и умеет отвечать на некоторые запросы, касающиеся истории футбола.
Информация о матче сообщается программе в следующей форме:
"Название 1-й команды" - "Название 2-й команды" Счет 1-й команды:Счет 2-й команды
Автор 1-го забитого мяча 1-й команды Минута, на которой был забит мяч'
Автор 2-го забитого мяча 1-й команды Минута, на которой был забит мяч'
...
Автор последнего забитого мяча 1-й команды Минута, на которой был забит мяч'
Автор 1-го забитого мяча 2-й команды Минута, на которой был забит мяч'
...
Автор последнего забитого мяча 2-й команды> <Минута, на которой был забит мяч>'
Запросы к программе бывают следующих видов:
Total goals for Название команды
- количество голов, забитое данной командой за все матчи.
Mean goals per game for Название команды
- среднее количество голов, забиваемое данной командой за один матч. Гарантирутся, что к моменту подачи такого запроса команда уже сыграла хотя бы один матч.
Total goals by Имя игрока
- количество голов, забитое данным игроком за все матчи.
Mean goals per game by Имя игрока
- среднее количество голов, забиваемое данным игроком за один матч его команды. Гарантирутся, что к моменту подачи такого запроса игрок уже забил хотя бы один гол.
Goals on minute Минута by Имя игрока
- количество голов, забитых данным игроком ровно на указанной минуте матча.
\texttt{Goals on first <\(T\)> minutes by <Имя игрока>}\\ --- количество голов, забитых данным игроком на минутах с первой по \(T\)-ю включительно.Goals on last \(T\) minutes by Имя игрока
- количество голов, забитых данным игроком на минутах с \((91 - T)\)-й по 90-ю включительно.
Score opens by Название команды
- сколько раз данная команда открывала счет в матче.
Score opens by Имя игрока
- сколько раз данный игрок открывал счет в матче.
Входной файл содержит информацию о матчах и запросы в том порядке, в котором они поступают в программу Аси Вуткиной.
Во входном файле содержится информация не более чем о 100 матчах, в каждом из которых забито не более 10 голов. Всего в чемпионате участвует не более 20 команд, в каждой команде не более 10 игроков забивают голы.
Все названия команд и имена игроков состоят только из прописных и строчных латинских букв и пробелов, а их длина не превышает 30. Прописные и строчные буквы считаются различными. Имена и названия не начинаются и не оканчиваются пробелами и не содержат двух пробелов подряд. Каждое имя и название содержит хотя бы одну букву.
Минута, на которой забит гол - целое число от 1 до 90 (про голы, забитые в дополнительное время, принято говорить, что они забиты на 90-й минуте).
Для простоты будем считать, что голов в собственные ворота в европейских чемпионатах не забивают, и на одной минуте матча может быть забито не более одного гола (в том числе на 90-й). Во время чемпионата игроки не переходят из одного клуба в другой.
Количество запросов во входном файле не превышает 500.
Для каждого запроса во входном файле выведите ответ на этот запрос в отдельной строке. Ответы на запросы, подразумевающие нецелочисленный ответ, должны быть верны с точностью до трех знаков после запятой.
"Juventus" - "Milan" 3:1 Inzaghi 45' Del Piero 67' Del Piero 90' Shevchenko 34' Total goals for "Juventus" Total goals by Pagliuca Mean goals per game by Inzaghi "Juventus" - "Lazio" 0:0 Mean goals per game by Inzaghi Mean goals per game by Shevchenko Score opens by Inzaghi
3 0 1.0 0.5 1.0 0
Total goals by Arshavin
0