--- tags: Python --- # Практика 13. Множини Розв'язати всі завдання (8) у розділі [Sets](https://snakify.org/en/lessons/sets/) *Обов'язково виконувати завдання під акаунтом для Кіта*. Для *першої реєстрації* на сайті snakify використовуйте запрошувальне посилання https://snakify.org/join_class/roman.yatsenko/hneu.net/ ## Базовий рівень ### [Задача 1. Кількість різних чисел](https://snakify.org/en/lessons/sets/problems/number_of_unique/) Наведено список чисел. Визначте, скільки у ньому зустрічається різних чисел. *Примітка*. Це завдання на Python можна вирішити в один рядок. :::spoiler Відповідь ![](https://i.imgur.com/tYoZVz9.png) <!-- --> ::: ### [Задача 2. Кількість чисел, що збігаються](https://snakify.org/en/lessons/sets/problems/number_of_coincidental/) Дано два списки чисел. Порахуйте, скільки чисел міститься як у першому списку, так і у другому. *Примітка*. Це завдання на Python можна вирішити в один рядок. :::spoiler Відповідь ![](https://i.imgur.com/wK4R2XS.png) <!-- --> ::: ### [Задача 3. Перетин множин](https://snakify.org/en/lessons/sets/problems/sets_intersection/) Дано два списки чисел. Знайдіть усі числа, які входять як до першого, так і до другого списку і виведіть їх у порядку зростання. *Примітка*. І навіть це завдання на Python можна вирішити в один рядок. Для сортування використовуємо функцію `sorted(x)` -- вона повертає відсортований список для `x`. :::spoiler Відповідь ![](https://i.imgur.com/lMSyUQd.png) <!-- --> ::: ## Середній рівень ### [Задача 4. Чи зустрічалося число раніше](https://snakify.org/en/lessons/sets/problems/occurs_before/) У вхідному рядку записана послідовність чисел через пробіл. Для кожного числа виведіть слово `YES` (в окремому рядку), якщо це число раніше зустрічалося в послідовності або `NO`, якщо не зустрічалося. :::spoiler Відповідь ![](https://i.imgur.com/0QGgkNq.png) <!-- --> ::: ### [Задача 5. Кубики](https://snakify.org/en/lessons/sets/problems/cubes/) Аня та Боря люблять грати в різнокольорові кубики, причому у кожного з них свій набір і в кожному наборі всі кубики різні за кольором. Якось діти зацікавилися, скільки існують кольорів таких, що кубики кожного кольору є в обох наборах. Для цього вони занумерували всі кольори випадковими числами від 0 до 100. На цьому їх ентузіазм вичерпався, тому вам пропонується допомогти їм у частині, що залишилася. У першому рядку вхідних даних записані числа `N` і `M` - число кубиків у Ані і Борі. У наступних `N` рядках задані номери кольорів кубиків Ані. В останніх рядках номера кольорів Борі. Знайдіть три множини: номери кольорів кубиків, які є в обох наборах; номери кольорів кубиків, які є тільки у Ані та номери кольорів кубиків, які є тільки у Борі. Для кожної з множин виведіть спочатку кількість елементів у ній, а потім самі елементи, відсортовані за зростанням. ![image](https://hackmd.io/_uploads/ryIs9uFp6.png) :::spoiler Відповідь ![](https://i.imgur.com/ilEY8if.png) <!-- --> ::: ### [Задача 6. Кількість слів у тексті](https://snakify.org/en/lessons/sets/problems/number_of_words/) Задано текст: у першому рядку записано число рядків, далі йдуть рядки. Визначте, скільки різних слів міститься у цьому тексті. Словом вважається послідовність непробільних символів, що йдуть поспіль, слова розділені одним або більшим числом пробілів або символами кінця рядка. :::spoiler Відповідь ![](https://i.imgur.com/KwL8tHp.png) <!-- --> ::: ## Підвищений рівень ### [Задача 7. Вгадай число](https://snakify.org/en/lessons/sets/problems/guess_number/) Август та Беатріса грають у гру. Август загадав натуральне число від 1 до `n`. Беатріс намагається вгадати це число, для цього вона називає деякі множини натуральних чисел. Август відповідає Беатрісі `YES`, якщо серед названих нею чисел є задумане або `NO` в іншому випадку. Після кількох поставлених питань Беатрис заплуталася в тому, які питання вона ставила і які відповіді отримала, і просить вас допомогти їй визначити, які числа міг задумати Август. У першому рядку задано `n` – максимальне число, яке міг загадати Август. Далі кожен рядок містить питання Беатріс (множина чисел, розділених пробілом) і відповідь Августа на це питання. Ви повинні вивести через пробіл в порядку зростання всі числа, які міг задумати Август. :::spoiler Відповідь ::: ### [Задача 8. Поліглоти](https://snakify.org/en/lessons/sets/problems/polyglots/) Кожен з деякої множини школярів деякої школи знає кілька мов. Потрібно визначити скільки мов знають усі школярі, і скільки мов знає хоча б один із школярів. У першому рядку задано кількість школярів. Для кожного зі школярів спершу записано кількість мов, які він знає, а потім -- назви мов, по одній у рядку. У першому рядку виведіть кількість мов, які знають усі школярі. Починаючи з другого рядка -- список таких мов. Потім -- кількість мов, які знає хоча б один школяр, на наступних рядках -- список таких мов. Мови потрібно виводити в лексикографічному порядку, по одному на рядку. :::spoiler Відповідь ::: --- (c) Яценко Р.М., 2018-2025 [Навчальний центр комп'ютерних технологій "Кит"](http://kit.kh.ua/) <img src="https://i.imgur.com/Kh901c1.png" style="width: 150px; position: fixed; top: 100px; right: 10px; border: 0; box-shadow: none;">