Уроки C++ / #11 урок - Словари и множества

Ссылка на плейлист со всеми уроками"C++ для начинающих " -    • Уроки C++ / #1 урок - Вводное занятие   _______ Автор: Михаил Густокашин Куратор академических программ Яндекса Директор центра студенческих олимпиад факультета компьютерных наук ВШЭ, методист московского Центра педагогического мастерства. Готовит студентов и школьников к олимпиадам по программированию. Возглавляет методическую комиссию Московской олимпиады школьников по информатике, состоит в жюри многих других соревнований. Подготовил десятки победителей и призёров Всероссийских олимпиад. Источник:
Лицензия: https://creativecommons.org/licenses/...
_____________ Задача №2 Во входной строке записана последовательность чисел через пробел. Для каждого числа выведите слово YES (в отдельной строке), если это число ранее встречалось в последовательности или NO, если не встречалось. Входные данные Вводится число N - количество элементов списка, а затем N чисел. Выходные данные Выведите ответ на задачу. Sample Input: 6 1 2 3 2 3 4 Sample Output: NO NO NO YES YES NO _________ Задача №3 Даны два списка чисел, которые могут содержать до 100000 чисел каждый. Посчитайте, сколько чисел содержится одновременно как в первом списке, так и во втором. Входные данные Вводится число N - количество элементов первого списка, а затем N чисел первого списка. Затем вводится число M - количество элементов второго списка, а затем M чисел второго списка. Выходные данные Выведите ответ на задачу. Sample Input: 3 1 3 2 3 4 3 2 Sample Output: 2 __________ Задача №4 Даны два списка чисел, которые могут содержать до 100000 чисел каждый. Выведите все числа, которые входят как в первый, так и во второй список в порядке возрастания. Входные данные Вводится число N - количество элементов первого списка, а затем N чисел первого списка. Затем вводится число M - количество элементов второго списка, а затем M чисел второго списка. Выходные данные Выведите ответ на задачу. Sample Input: 3 1 3 2 3 4 3 2 Sample Output: 2 3 _______________ Задача №5 Вам дан словарь, состоящий из пар слов. Каждое слово является синонимом к парному ему слову. Все слова в словаре различны. Для одного данного слова определите его синоним. Входные данные Программа получает на вход количество пар синонимов N. Далее следует N строк, каждая строка содержит ровно два слова-синонима. После этого следует одно слово. Выходные данные Программа должна вывести синоним к данному слову. Sample Input: 3 Hello Hi Bye Goodbye List Array Goodbye Sample Output: Bye __________________________ Задача №6 Однажды, разбирая старые книги на чердаке, школьник Вася нашёл англо-латинский словарь. Английский он к тому времени знал в совершенстве, и его мечтой было изучить латынь. Поэтому попавшийся словарь был как раз кстати. К сожалению, для полноценного изучения языка недостаточно только одного словаря: кроме англо-латинского необходим латинско-английский. За неимением лучшего он решил сделать второй словарь из первого. Как известно, словарь состоит из переводимых слов, к каждому из которых приводится несколько слов-переводов. Для каждого латинского слова, встречающегося где-либо в словаре, Вася предлагает найти все его переводы (то есть все английские слова, для которых наше латинское встречалось в его списке переводов), и считать их и только их переводами этого латинского слова. Помогите Васе выполнить работу по созданию латинско-английского словаря из англо-латинского. Входные данные В первой строке содержится единственное целое число N — количество английских слов в словаре. Далее следует N описаний. Каждое описание содержится в отдельной строке, в которой записано сначала английское слово, затем отделённый пробелами дефис (символ номер 45), затем разделённые запятыми с пробелами переводы этого английского слова на латинский. Переводы отсортированы в лексикографическом порядке. Порядок следования английских слов в словаре также лексикографический. Все слова состоят только из маленьких латинских букв, длина каждого слова не превосходит 15 символов. Общее количество слов на входе не превышает 100000. Выходные данные В первой строке программа должна вывести количество слов в соответствующем данному латинско-английском словаре. Со второй строки выведите сам словарь, в точности соблюдая формат входных данных. В частности, первым должен идти перевод лексикографически минимального латинского слова, далее — второго в этом порядке и т.д. Внутри перевода английские слова должны быть также отсортированы лексикографически. Sample Input: 3 apple - malum, pomum, popula fruit - baca, bacca, popum punishment - malum, multa Sample Output: 7 baca - fruit bacca - fruit malum - apple, punishment multa - punishment pomum - apple popula - apple popum - fruit

Смотрите также