---
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 Відповідь

<!--
-->
:::
### [Задача 2. Кількість чисел, що збігаються](https://snakify.org/en/lessons/sets/problems/number_of_coincidental/)
Дано два списки чисел. Порахуйте, скільки чисел міститься як у першому списку, так і у другому.
*Примітка*. Це завдання на Python можна вирішити в один рядок.
:::spoiler Відповідь

<!--
-->
:::
### [Задача 3. Перетин множин](https://snakify.org/en/lessons/sets/problems/sets_intersection/)
Дано два списки чисел. Знайдіть усі числа, які входять як до першого, так і до другого списку і виведіть їх у порядку зростання.
*Примітка*. І навіть це завдання на Python можна вирішити в один рядок. Для сортування використовуємо функцію `sorted(x)` -- вона повертає відсортований список для `x`.
:::spoiler Відповідь

<!--
-->
:::
## Середній рівень
### [Задача 4. Чи зустрічалося число раніше](https://snakify.org/en/lessons/sets/problems/occurs_before/)
У вхідному рядку записана послідовність чисел через пробіл. Для кожного числа виведіть слово `YES` (в окремому рядку), якщо це число раніше зустрічалося в послідовності або `NO`, якщо не зустрічалося.
:::spoiler Відповідь

<!--
-->
:::
### [Задача 5. Кубики](https://snakify.org/en/lessons/sets/problems/cubes/)
Аня та Боря люблять грати в різнокольорові кубики, причому у кожного з них свій набір і в кожному наборі всі кубики різні за кольором. Якось діти зацікавилися, скільки існують кольорів таких, що кубики кожного кольору є в обох наборах. Для цього вони занумерували всі кольори випадковими числами від 0 до 100. На цьому їх ентузіазм вичерпався, тому вам пропонується допомогти їм у частині, що залишилася.
У першому рядку вхідних даних записані числа `N` і `M` - число кубиків у Ані і Борі. У наступних `N` рядках задані номери кольорів кубиків Ані. В останніх рядках номера кольорів Борі.
Знайдіть три множини: номери кольорів кубиків, які є в обох наборах; номери кольорів кубиків, які є тільки у Ані та номери кольорів кубиків, які є тільки у Борі. Для кожної з множин виведіть спочатку кількість елементів у ній, а потім самі елементи, відсортовані за зростанням.

:::spoiler Відповідь

<!--
-->
:::
### [Задача 6. Кількість слів у тексті](https://snakify.org/en/lessons/sets/problems/number_of_words/)
Задано текст: у першому рядку записано число рядків, далі йдуть рядки. Визначте, скільки різних слів міститься у цьому тексті.
Словом вважається послідовність непробільних символів, що йдуть поспіль, слова розділені одним або більшим числом пробілів або символами кінця рядка.
:::spoiler Відповідь

<!--
-->
:::
## Підвищений рівень
### [Задача 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;">