Массивы(232 задач)
Типы данных(356 задач)
Циклы(177 задач)
Условный оператор (if)(164 задач)
Python(260 задач)
Standard Template Library(2 задач)
Дан текст. Выведите все слова, встречающиеся в тексте, по одному на каждую строку. Слова должны быть отсортированы по убыванию их количества появления в тексте, а при одинаковой частоте появления — в лексикографическом порядке.
Указание. После того, как вы создадите словарь всех слов, вам захочется отсортировать
его по частоте встречаемости слова. Желаемого можно добиться, если создать список,
элементами которого будут кортежи из двух элементов: частота встречаемости слова
и само слово. Например, [(2, 'hi'), (1, 'what'), (3, 'is')]
.
Тогда стандартная сортировка будет сортировать список кортежей, при этом
кортежи сравниваются по первому элементу, а если они равны —
то по второму. Это почти то, что требуется в задаче.
Вводится текст.
Выведите ответ на задачу.
hi hi what is your name my name is bond james bond my name is damme van damme claude van damme jean claude van damme
damme is name van bond claude hi my james jean what your
Дан список стран и городов каждой страны. Затем даны названия городов. Для каждого города укажите, в какой стране он находится.
Программа получает на вход количество стран \(N\). Далее идет \(N\) строк, каждая строка начинается с названия страны, затем идут названия городов этой страны. В следующей строке записано число \(M\), далее идут \(M\) запросов — названия каких-то \(M\) городов, перечисленных выше.
Для каждого из запроса выведите название страны, в котором находится данный город.
2 Aztec Tenochtitlan Tetzcoco Tlacopan Inca Cusco Chan-Chan Tiwanaku 3 Cusco Tenochtitlan Chan-Chan
Inca Aztec Inca
Некоторый банк хочет внедрить систему управления счетами клиентов, поддерживающую следующие операции:
Вам необходимо реализовать такую систему. Клиенты банка идентифицируются именами (уникальная строка, не содержащая пробелов). Первоначально у банка нет ни одного клиента. Как только для клиента проводится операция пололнения, снятия или перевода денег, ему заводится счет с нулевым балансом. Все дальнейшие операции проводятся только с этим счетом. Сумма на счету может быть как положительной, так и отрицательной, при этом всегда является целым числом.
Входной файл содержит последовательность операций. Возможны следующие операции:
DEPOSIT name sum
- зачислить сумму sum
на счет клиента name
.
Если у клиента нет счета, то счет создается.
WITHDRAW name sum
- снять сумму sum
со счета клиента name
.
Если у клиента нет счета, то счет создается.
BALANCE name
- узнать остаток средств на счету клиента name
.
TRANSFER name1 name2 sum
- перевести сумму sum
со счета клиента name1
на счет клиента name2
. Если у какого-либо клиента нет счета, то ему создается счет.
INCOME p
- начислить всем клиентам, у которых открыты счета, p
%
от суммы счета. Проценты начисляются только клиентам с положительным остатком на счету,
если у клиента остаток отрицательный, то его счет не меняется. После начисления процентов
сумма на счету остается целой, то есть начисляется только целое число денежных единиц.
Дробная часть начисленных процентов отбрасывается.
Для каждого запроса BALANCE
программа должна вывести остаток на счету данного
клиента. Если же у клиента с запрашиваемым именем не открыт счет в банке, выведите
ERROR
.
DEPOSIT Ivanov 100 INCOME 5 BALANCE Ivanov TRANSFER Ivanov Petrov 50 WITHDRAW Petrov 100 BALANCE Petrov BALANCE Sidorov
105 -50 ERROR
Однажды, разбирая старые книги на чердаке, школьник Вася нашёл англо-латинский словарь. Английский он к тому времени знал в совершенстве, и его мечтой было изучить латынь. Поэтому попавшийся словарь был как раз кстати.
К сожалению, для полноценного изучения языка недостаточно только одного словаря: кроме англо-латинского необходим латинско-английский. За неимением лучшего он решил сделать второй словарь из первого.
Как известно, словарь состоит из переводимых слов, к каждому из которых приводится несколько слов-переводов. Для каждого латинского слова, встречающегося где-либо в словаре, Вася предлагает найти все его переводы (то есть все английские слова, для которых наше латинское встречалось в его списке переводов), и считать их и только их переводами этого латинского слова.
Помогите Васе выполнить работу по созданию латинско-английского словаря из англо-латинского.
В первой строке содержится единственное целое число N — количество английских слов в словаре. Далее следует N описаний. Каждое описание содержится в отдельной строке, в которой записано сначала английское слово, затем отделённый пробелами дефис (символ номер 45), затем разделённые запятыми с пробелами переводы этого английского слова на латинский. Переводы отсортированы в лексикографическом порядке. Порядок следования английских слов в словаре также лексикографический.
Все слова состоят только из маленьких латинских букв, длина каждого слова не превосходит 15 символов. Общее количество слов на входе не превышает 100000.
Выведите соответствующий данному латинско-английский словарь, в точности соблюдая формат входных данных. В частности, первым должен идти перевод лексикографически минимального латинского слова, далее — второго в этом порядке и т.д. Внутри перевода английские слова должны быть также отсортированы лексикографически.
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 — количество слов в словаре (0≤N≤20000).
Далее идет N строк со словами из словаря. Каждое слово состоит не более чем из 30 символов. Все слова состоят из маленьких и заглавных латинских букв. В каждом слове заглавная ровно одна буква — та, на которую попадает ударение. Слова в словаре расположены в алфавитном порядке. Если есть несколько возможностей расстановки ударения в одном и том же слове, то эти варианты в словаре идут в произвольном порядке.
Далее идет упражнение, выполненное Петей. Упражнение представляет собой строку текста, суммарным объемом не более 300000 символов. Строка состоит из слов, которые разделяются между собой ровно одним пробелом. Длина каждого слова не превышает 30 символов. Все слова состоят из маленьких и заглавных латинских букв (заглавными обозначены те буквы, над которыми Петя поставил ударение). Петя мог по ошибке в каком-то слове поставить более одного ударения или не поставить ударения вовсе.
Выведите количество ошибок в Петином тексте, которые найдет Вася.
1. В слове cannot, согласно словарю возможно два варианта расстановки ударения. Эти варианты в словаре могут быть перечислены в любом порядке (т.е. как сначала cAnnot, а потом cannOt, так и наоборот).
Две ошибки, совершенные Петей — это слова be (ударение вообще не поставлено) и fouNd (ударение поставлено неверно). Слово thE отсутствует в словаре, но поскольку в нем Петя поставил ровно одно ударение, признается верным.
2. Неверно расставлены ударения во всех словах, кроме The (оно отсутствует в словаре, в нем поставлено ровно одно ударение). В остальных словах либо ударные все буквы (в слове PAGE), либо не поставлено ни одного ударения.
4 cAnnot cannOt fOund pAge thE pAge cAnnot be found
2
4 cAnnot cannOt fOund pAge The PAGE cannot be found
4