--- tags: Python --- # Практика 13-2. Словники Розв'язати всі завдання (8) у розділі [Dictionaries](https://snakify.org/en/lessons/dictionaries_dicts/) *Обов'язково виконувати завдання під акаунтом для Кіта*. Для *першої реєстрації* на сайті snakify використовуйте запрошувальне посилання https://snakify.org/join_class/roman.yatsenko/hneu.net/ ## Базовий рівень ### [Задача 1. Номер появи слова](https://snakify.org/en/lessons/dictionaries_dicts/problems/number_of_occurrences_before/) У єдиному рядку записаний текст. Для кожного слова з цього тексту підрахуйте, скільки разів воно зустрічалося раніше. Словом вважається послідовність непробільних символів, що йдуть поспіль, слова розділені одним або більшим числом пробілів або символами кінця рядка. ![](https://i.imgur.com/FG8HFEu.png) :::spoiler Підказка [![](https://mermaid.ink/img/pako:eNqNU8Fu2kAQ_ZXVnhIJCGCMwVLbQ9NjT-2pmIOFDVgCGxlbbWohJSDRHqIgVRGHXqr-AaVQCBT4hd0_6ts1uEAvRWLtmXnz5s3MOqI1z7KpTust732tafoBeXttuAQ_x8peVNg3tuWf2IT32ZatqpeHUK5yZVD2hU3ZnN8huCT8lo_YTKAI7AlhO4Ru8e8DtMXbUsLYEyA_2ZawDUD8DrAlTpEWc3cDnzwjjtsJg4vLTLfTcvA06FX1UDpfQeXv57Q7PoiFsCfBugbjFCWWCa_l1MAb9QyaMClRBMVrPiJsBfwv4GNtCcGEdAlb8PFfoSs-EBJ7vQNJIQJkysdshvoDKNjwRzjORCBLCHiRpKmiCzGuGYb7yH6LiZwnETaHOUdwDtY-lAiha_6AjcALbfGkF2KW0rcBboRI9qjLoqi0YD8gcc3v-WeI3Nc7ZT-tDV4IrnSr8aJyR4TafvfLo-3_J1dMgUYxkTGQQzla0QWwy1jVDkvdxnKP157Liuv4VaSh6pDfHy5jclvT6eeAyTMvTyVZtDQLycrSaVlyJd2qPLWjIISNpbN4GtLS_9DGfcSCCB_Kbtd8kI6R0Gy4NEXbtt82HQufWSRyDRo07bZtUB2vll03w1ZgUMPtAWqGgffmxq1RPfBDO0V9L2w0qV43W11YYccyA_vaMRu-2T7zvrKcwPMTpy3N1_HXLT_yFO2Y7jvPax-4G77QtK9ju5btv_RCN6B6WZNYqkf0A9UVtZBRVaVULmiFUimnpOgNnEqmrMDOq7liuVAsa70U_Si5s5mSpvb-AFGODu4?type=png)](https://mermaid.live/edit#pako:eNqNU8Fu2kAQ_ZXVnhIJCGCMwVLbQ9NjT-2pmIOFDVgCGxlbbWohJSDRHqIgVRGHXqr-AaVQCBT4hd0_6ts1uEAvRWLtmXnz5s3MOqI1z7KpTust732tafoBeXttuAQ_x8peVNg3tuWf2IT32ZatqpeHUK5yZVD2hU3ZnN8huCT8lo_YTKAI7AlhO4Ru8e8DtMXbUsLYEyA_2ZawDUD8DrAlTpEWc3cDnzwjjtsJg4vLTLfTcvA06FX1UDpfQeXv57Q7PoiFsCfBugbjFCWWCa_l1MAb9QyaMClRBMVrPiJsBfwv4GNtCcGEdAlb8PFfoSs-EBJ7vQNJIQJkysdshvoDKNjwRzjORCBLCHiRpKmiCzGuGYb7yH6LiZwnETaHOUdwDtY-lAiha_6AjcALbfGkF2KW0rcBboRI9qjLoqi0YD8gcc3v-WeI3Nc7ZT-tDV4IrnSr8aJyR4TafvfLo-3_J1dMgUYxkTGQQzla0QWwy1jVDkvdxnKP157Liuv4VaSh6pDfHy5jclvT6eeAyTMvTyVZtDQLycrSaVlyJd2qPLWjIISNpbN4GtLS_9DGfcSCCB_Kbtd8kI6R0Gy4NEXbtt82HQufWSRyDRo07bZtUB2vll03w1ZgUMPtAWqGgffmxq1RPfBDO0V9L2w0qV43W11YYccyA_vaMRu-2T7zvrKcwPMTpy3N1_HXLT_yFO2Y7jvPax-4G77QtK9ju5btv_RCN6B6WZNYqkf0A9UVtZBRVaVULmiFUimnpOgNnEqmrMDOq7liuVAsa70U_Si5s5mSpvb-AFGODu4) ![](https://i.imgur.com/i9lcKiP.png) <!-- --> ::: ### [Задача 2. Словник синонімів](https://snakify.org/en/lessons/dictionaries_dicts/problems/synonym_dictionary/) Вам дано словник, який складається з пар слів. Кожне слово є синонімом до парного слова. Усі слова у словнику різні. Для слова зі словника, записаного в останньому рядку, визначте синонім. ![](https://i.imgur.com/x3oMzt0.png) :::spoiler Підказка [![](https://mermaid.ink/img/pako:eNqtU01vm0AQ_SurPSUScbABgzn00vTYU3uqyQGZtY1kFosPtSlCahIpvVStVEU99FL1H1goVlx_5S_M_qMOS6DUUW9FYmDmvZn3ll0yOgo9Rm06noVvR1M3SsjrM4cTvHxPPRrCD9iLj7AQV7CH9flxDXWHpw6Fr1DAUlwiuCLcoafnNdwbIvoT6wW2f4CVZMCDuK7I8IuIS9jgyAJ2mK4d2rRqWQYPJVJKNr2c4OsC7vO85unSQdFyMPajOFFIzEYh9wi6XmLPEu6Jz-dpcnTcieczH59to0Zp9A7l7nCNt7CFPYHiwBzBIRu8t3jvxBXBibCGjfhcSsC20iVoYYEQtixkfYfcL4hWdloL7P8HyXqN_9CUjlqS5pPditsfwXqEVy3CgYG_7UnVA0ftgV21PDrfxTekL8WN-FQfnOZknZw8Q5qMPRm1Zv9lqstoyNh_QoD1n9FE3EhLG3EteaaMViWgqg6nCg1YFLi-h8c8K6c4NJmygDnUxlePjd10hl_L4TlS3TQJX13wEbWTKGUKjcJ0MqX22J3FmKVzz03Yme9OIjc4qL7w_CSMmiKT6cvq75I_mULnLn8ThkE9exKVnh51GPdY9DxMeUJtU5Ncamf0HbU1Q-8YhmYNdFO3rC5iF1jUOgMN857R7Q_0_sDMFfpezlY7lmnkvwERT8dB?type=png)](https://mermaid.live/edit#pako:eNqtU01vm0AQ_SurPSUScbABgzn00vTYU3uqyQGZtY1kFosPtSlCahIpvVStVEU99FL1H1goVlx_5S_M_qMOS6DUUW9FYmDmvZn3ll0yOgo9Rm06noVvR1M3SsjrM4cTvHxPPRrCD9iLj7AQV7CH9flxDXWHpw6Fr1DAUlwiuCLcoafnNdwbIvoT6wW2f4CVZMCDuK7I8IuIS9jgyAJ2mK4d2rRqWQYPJVJKNr2c4OsC7vO85unSQdFyMPajOFFIzEYh9wi6XmLPEu6Jz-dpcnTcieczH59to0Zp9A7l7nCNt7CFPYHiwBzBIRu8t3jvxBXBibCGjfhcSsC20iVoYYEQtixkfYfcL4hWdloL7P8HyXqN_9CUjlqS5pPditsfwXqEVy3CgYG_7UnVA0ftgV21PDrfxTekL8WN-FQfnOZknZw8Q5qMPRm1Zv9lqstoyNh_QoD1n9FE3EhLG3EteaaMViWgqg6nCg1YFLi-h8c8K6c4NJmygDnUxlePjd10hl_L4TlS3TQJX13wEbWTKGUKjcJ0MqX22J3FmKVzz03Yme9OIjc4qL7w_CSMmiKT6cvq75I_mULnLn8ThkE9exKVnh51GPdY9DxMeUJtU5Ncamf0HbU1Q-8YhmYNdFO3rC5iF1jUOgMN857R7Q_0_sDMFfpezlY7lmnkvwERT8dB) ![](https://i.imgur.com/7TqLMPS.png) <!-- ``` ввести n создаем пустой словарь повторить n раз: ввести first, second с помощью input().split() добавляем в словарь элемент с ключом first и значением second добавляем в словарь элемент с ключом second и значением first ввести s вывести элемент словаря с ключом s ``` --> ::: ### [Задача 3. Вибори у США](https://snakify.org/en/lessons/dictionaries_dicts/problems/usa_elections/) Як відомо, у США президент обирається не прямим голосуванням, а шляхом дворівневого голосування. Спочатку проводяться вибори у кожному штаті та визначається переможець виборів у даному штаті. Потім проводяться державні вибори: на цих виборах кожен штат має певну кількість голосів — кількість виборців від цього штату. На практиці всі виборці від штату голосують відповідно до результатів голосування всередині штату, тобто на заключній стадії виборів у голосуванні беруть участь штати, які мають різну кількість голосів. У першому рядку дано кількість записів. Далі, кожен запис містить прізвище кандидата та кількість голосів, відданих за нього в одному зі штатів. Підбіть підсумки виборів: для кожного з учасників голосування визначте кількість відданих за нього голосів. Учасників слід виводити в алфавітному порядку. ![](https://i.imgur.com/vqWm6nk.png) :::spoiler Підказка [![](https://mermaid.ink/img/pako:eNqNVctu2lAQ_ZWrK0UNEnmAMQ8vumm67KpdNc7Cih1AAjtyjNrUQmoSKV2UNFIXWXRT9Q-oCw3hYX5h7h917hgbG0hSS1w873PPzIDPjx3T4ho_aTkfjhuG67F3B7rN8Gma-9uH8BNC8QX64hJCGB_lYlPhcE_n8B0CGIoLNI6YrfO9o9hcPETrL9QHGP4ZRuQBc3EVOcMDExcwwZQBzFAc6zwJVXwf5tIiSyaxNsPXPtx3u7FfiRAEKQTiDqYvxC2DMXrOYICJB4S8z-iAMXpMRE9-yxDRY_AHKyEOFO8gSN9AlTcYoDVKgehRYDBE7yFM8TOLEmeuIYvcy_oT8Q1ZQ8dNYOAeFX2yzzDN7RqKBETZ9wnFJLpVCH8xIpTuGy95xZC1OxggKGSOWhaQVwhTNGaxouLMcT3L3M7qczpfklxZkDxK0fwovQ8JtGd4ZtvrFDxHbC7dnMK-HM0fmGuGsK5FLx7MZHJ3dl6iG51FOpVkvkgs0amumQj7IikT11R7Iq7Ir0xnJXpPWvR0DCLVbd3e2mKZUY1Usk_IBLEoSYr3I0zvRx872YsyrKwFhsRroZGDfDJlEMp080JEfZQ9GckukH8ge5c0StZaZp3LkvAb8wSL0jBm4ibdtPSESdC3KC53IfyPXRjBcBOA5QL0cQEGjy8AThYGXibjP0LQ8QrQEmQAYrHVBSCuc2kyxdenJ19qhzGe5-hcmXt53SyF6bknCnM8z9uW2zaaJv5G-3LodO41rLalcw1fTevE6LQ8net2F12Njue8PbePuea5HSvPXadTb3DtxGidodQ5NQ3POmgadddor2hfm03PcROlReKb6K-B_iHy_NSw3ztOO85ddyWmRR3LNi33ldOxPa6pFfLlms8_ck1RS7uqqlRrpUqpWi0oeX6OSmW3pqBcVAvlWqlcq3Tz_BPl3t-tVtTuP83nqW4?type=png)](https://mermaid.live/edit#pako:eNqNVctu2lAQ_ZWrK0UNEnmAMQ8vumm67KpdNc7Cih1AAjtyjNrUQmoSKV2UNFIXWXRT9Q-oCw3hYX5h7h917hgbG0hSS1w873PPzIDPjx3T4ho_aTkfjhuG67F3B7rN8Gma-9uH8BNC8QX64hJCGB_lYlPhcE_n8B0CGIoLNI6YrfO9o9hcPETrL9QHGP4ZRuQBc3EVOcMDExcwwZQBzFAc6zwJVXwf5tIiSyaxNsPXPtx3u7FfiRAEKQTiDqYvxC2DMXrOYICJB4S8z-iAMXpMRE9-yxDRY_AHKyEOFO8gSN9AlTcYoDVKgehRYDBE7yFM8TOLEmeuIYvcy_oT8Q1ZQ8dNYOAeFX2yzzDN7RqKBETZ9wnFJLpVCH8xIpTuGy95xZC1OxggKGSOWhaQVwhTNGaxouLMcT3L3M7qczpfklxZkDxK0fwovQ8JtGd4ZtvrFDxHbC7dnMK-HM0fmGuGsK5FLx7MZHJ3dl6iG51FOpVkvkgs0amumQj7IikT11R7Iq7Ir0xnJXpPWvR0DCLVbd3e2mKZUY1Usk_IBLEoSYr3I0zvRx872YsyrKwFhsRroZGDfDJlEMp080JEfZQ9GckukH8ge5c0StZaZp3LkvAb8wSL0jBm4ibdtPSESdC3KC53IfyPXRjBcBOA5QL0cQEGjy8AThYGXibjP0LQ8QrQEmQAYrHVBSCuc2kyxdenJ19qhzGe5-hcmXt53SyF6bknCnM8z9uW2zaaJv5G-3LodO41rLalcw1fTevE6LQ8net2F12Njue8PbePuea5HSvPXadTb3DtxGidodQ5NQ3POmgadddor2hfm03PcROlReKb6K-B_iHy_NSw3ztOO85ddyWmRR3LNi33ldOxPa6pFfLlms8_ck1RS7uqqlRrpUqpWi0oeX6OSmW3pqBcVAvlWqlcq3Tz_BPl3t-tVtTuP83nqW4) ![](https://i.imgur.com/ET7LxX6.png) <!-- ``` ввести n создать пустой словарь повторить n раз: ввести имя кандидата и количество голосов прибавить к элементу словаря с ключом кандидата значение голосов для каждого кандидата в отсортированном словаре sorted(словарь): вывести кандидата и его количество голосов (значение элемента словаря) ``` --> ::: ### [Задача 4. Найчастіше слово](https://snakify.org/en/lessons/dictionaries_dicts/problems/most_frequent_word/) Даний текст: у першому рядку задано число рядків, далі йдуть рядки. Виведіть слово, яке найчастіше зустрічається в цьому тексті. Якщо таких слів кілька, виведіть те, що менше у лексикографічному (алфавітному) порядку. ![](https://i.imgur.com/MSD7Y51.png) :::spoiler Підказка [![](https://mermaid.ink/img/pako:eNqNVMtu2kAU_ZXRrEACgjEG24t20XTZVbtqHEUWNg8J25Gxm6QIKQQ1zQIFqapYdFP1DwiF8gz8wswf9c4MNg6porIYZu7j3HPP3HEbVzzLxjquNr2LSt30A_Th2HAR_BpWPnVCfpIN_UpG9IZsyPI0HbmkkyMDk29kTKa0C845cg18dBq5Cyfg_QX2MaRfkzmPIFvaE8FkgWiXrAByTB7huDRwnCq322TLPKxknOsi2I7IrNOJ4ooQNyErOkBkCeF_AGhDfpPNHnmEaA_BP3CEyCkPWIOJXtMBGJa0t0dTGOEZeaBDgOzTu4jyFLCmZM2y6c0BaSiwY5AoCa4RkhBwfeBcDjVYCJaJhkus9BgAZyyXi_0dKm6QY16eVbzQDZAIBdZLZkxZjUruk9kM7VYqnU4glQFpX5He73CYnECAawT9ce23wKfLrhRdeL7VKkSdMApkwUkAEB1yJb7wBiF1nCim_p_-TyVLSq61Yx9wnInZANpDIQHs-2AZJGQQI4BexxBSnmk3AYwJH9E5SkKO_9VoogNJDDGTfj_GQoDdjd-R6RPEmbjyDR_QteiX3iOn4aYEejr5CKQ8e0A_QLdHgL-l_ej5xO8rm30FYXwt8FWOXwE_FvmqiH08-NksCBmDInrLh3FFe88gXoor8bXMVzW-VH7UslnQYkSWgp-gqcX3BrgwR88SXyomSTuovOHiDHZs3zEbFnx22gzAwEHddmwD67C17KoZNgMDG24HQs0w8N5fuRWsB35oZ7DvhbU61qtmswWn8NwyA_u4YdZ80zmwvrUagefHRpsf34mvHf_oZfC56X70PCfCrvmM066O7Vq2_4bNHdZVhcdivY0vsS4rxZyiyKpWLBdVVZIz-AqMck6T4VxQpJJWLGnlTgZ_5tj5nFpWOn8Bz12mZA?type=png)](https://mermaid.live/edit#pako:eNqNVMtu2kAU_ZXRrEACgjEG24t20XTZVbtqHEUWNg8J25Gxm6QIKQQ1zQIFqapYdFP1DwiF8gz8wswf9c4MNg6porIYZu7j3HPP3HEbVzzLxjquNr2LSt30A_Th2HAR_BpWPnVCfpIN_UpG9IZsyPI0HbmkkyMDk29kTKa0C845cg18dBq5Cyfg_QX2MaRfkzmPIFvaE8FkgWiXrAByTB7huDRwnCq322TLPKxknOsi2I7IrNOJ4ooQNyErOkBkCeF_AGhDfpPNHnmEaA_BP3CEyCkPWIOJXtMBGJa0t0dTGOEZeaBDgOzTu4jyFLCmZM2y6c0BaSiwY5AoCa4RkhBwfeBcDjVYCJaJhkus9BgAZyyXi_0dKm6QY16eVbzQDZAIBdZLZkxZjUruk9kM7VYqnU4glQFpX5He73CYnECAawT9ce23wKfLrhRdeL7VKkSdMApkwUkAEB1yJb7wBiF1nCim_p_-TyVLSq61Yx9wnInZANpDIQHs-2AZJGQQI4BexxBSnmk3AYwJH9E5SkKO_9VoogNJDDGTfj_GQoDdjd-R6RPEmbjyDR_QteiX3iOn4aYEejr5CKQ8e0A_QLdHgL-l_ej5xO8rm30FYXwt8FWOXwE_FvmqiH08-NksCBmDInrLh3FFe88gXoor8bXMVzW-VH7UslnQYkSWgp-gqcX3BrgwR88SXyomSTuovOHiDHZs3zEbFnx22gzAwEHddmwD67C17KoZNgMDG24HQs0w8N5fuRWsB35oZ7DvhbU61qtmswWn8NwyA_u4YdZ80zmwvrUagefHRpsf34mvHf_oZfC56X70PCfCrvmM066O7Vq2_4bNHdZVhcdivY0vsS4rxZyiyKpWLBdVVZIz-AqMck6T4VxQpJJWLGnlTgZ_5tj5nFpWOn8Bz12mZA) ![](https://i.imgur.com/4nxX1Q8.png) <!-- ``` ввести n создаем пустой словарь повторить n раз: для каждого слова в введенной строке: увеличить элемент словаря для слова на 1, или создать его определяем max_count как max(dic.values()) создаем пустой список words2 для наиболее частых слов для каждого слова в словаре: если слово встречается max_count раз: добавить слово в список words2 вывести наименьшее слово с помощью min(words2) ``` --> ::: ## Середній рівень ### [Задача 5. Права доступа](https://snakify.org/en/lessons/dictionaries_dicts/problems/permissions/) У файлову систему одного суперкомп'ютера проник вірус, який зламав контроль за правами доступу до файлів. Для кожного файлу відомо, з якими діями можна звертатися до нього: - запис `W`, - читання `R`, - запуск `X`. У першому рядку міститься число `N` - кількість файлів, що містяться в даній файловій системі. У наступних `N` рядках містяться імена файлів і допустимих з ними операцій, розділені пробілами. Далі вказано число `M` - кількість запитів до файлів. В останніх `M` рядках вказаний запит виду "Операція Файл". До того самого файлу може бути застосована будь-яка кількість запитів. Вам потрібно відновити контроль над правами доступу до файлів (ваша програма для кожного запиту повинна буде повертати `OK`, якщо над файлом виконується допустима операція, або `Access denied`, якщо операція неприпустима). ![](https://i.imgur.com/IBRkmJs.png) ::: spoiler Підказка [![](https://mermaid.ink/img/pako:eNqtVs1u00AQfpXVSiggpW3SJE3iAwgBJ1SQAAlE3IMVb9tIjYMcR_xYkWiL6AFoL6gHLrxCCJi6aZO-wu4bMTMbOxsnRUIiVd3M7M7fN_NNHfJmxxXc4tt7ndfNXccP2LP7tsfg03ILNxvyu5yoIzlQB3IiR1u3kqNiw-ZqH7RDOH-vjtVXeSknTF6hCFd_y7E6ledM7csLEIdyLGM5YvKXvFAnTH2QA3kOX0_l0OZbidP15U6X-5BXEGgghyhP0EodguqQaWdhzheOm7NY7kkuz3Kv_VYgUHqOkngjmj0tv8j1jQRKYYgVyCGWC-5j-BunAYfwE4EQQSIT-RPLPWNyBMlBGlDKAHNAK_aIUW5nWF-_n3gvN9a0D6oxhjvqBJOHmkAeIHgR2EUJAEn48yTaGC4BGFdwsE9m3bU09QpgR85-UbMo6yx0aG4gz6CSC_i9xIrUAQOdrgeQP0I96zYKW9PczjA6qcdw-QQOAWtwHENqF1iHOp3lNoKzbl5PwxFcQVP0GRNic1HJN4YeE7IjquySFUGlSwAVHKqPODaGf6NrG2EItf-Pvm0afbP5rHPVxhpEMHsHjnS3BpDZqTrWKCXo2nzWmFqYhTnbk-smOduNTEzA4-sCoQ6xLfMRUGF2_U5aVp0GMjbKevxwlnixsHB8t9kU3S5zhdcSrnkTN8U3amIEuX3GPWF7N24w6uYZzqSuAMoiVxNzNQyACJ-zleDJMhfLrZZCCND-yxrAYNkpMiKYU5TMkdpP5whwms6R-pTy3yKn-JknPiaIWxJ7g8OE2Ucg_9Bm0_ooeiQjMM7QfuYWGf9Dx9f3h1mETECZ-pIZxdmETRK-E0sNtse6dUPNdgDA4CFADDxP02Fsaqcpj4zNhKQNxuh8nu7JxgKfE6S7ueogzP_szubfu2PSDKIcY2opsVOLiGCOFxE1wL9-LrPAZ2KeMJ3NEloMsi3GfhgttoxmYGHq0xy9ZwXESYv_ajHHeM339O1gZeU2cJ-e6_Qspf9HSSzTs7JwpDe63hQM6yUoDuneRrrUSazSs5bu0pUVHCE5InV93gIO8aVDZ1VY8HZt1KlBwfZ4nreF33ZaLrwQhWhr82BXtIXNLfjqim2ntxfY3Pb6cNXpBZ2nb70mtwK_J_Lc7_R2drm17ex1Qeq9cp1A3G85O77TzmgfuK2g46dKQeKmfg-j17E8f-V4LzudduJ7x8ecpnGE5wr_XqfnBdwqlit0mVshf8OtUqW8WqmUavVytVyrFUt5_haUpdV6CeT1SnGjXt6oV_t5_o6cF1Zr1Ur_DwjxfxA?type=png)](https://mermaid.live/edit#pako:eNqtVs1u00AQfpXVSiggpW3SJE3iAwgBJ1SQAAlE3IMVb9tIjYMcR_xYkWiL6AFoL6gHLrxCCJi6aZO-wu4bMTMbOxsnRUIiVd3M7M7fN_NNHfJmxxXc4tt7ndfNXccP2LP7tsfg03ILNxvyu5yoIzlQB3IiR1u3kqNiw-ZqH7RDOH-vjtVXeSknTF6hCFd_y7E6ledM7csLEIdyLGM5YvKXvFAnTH2QA3kOX0_l0OZbidP15U6X-5BXEGgghyhP0EodguqQaWdhzheOm7NY7kkuz3Kv_VYgUHqOkngjmj0tv8j1jQRKYYgVyCGWC-5j-BunAYfwE4EQQSIT-RPLPWNyBMlBGlDKAHNAK_aIUW5nWF-_n3gvN9a0D6oxhjvqBJOHmkAeIHgR2EUJAEn48yTaGC4BGFdwsE9m3bU09QpgR85-UbMo6yx0aG4gz6CSC_i9xIrUAQOdrgeQP0I96zYKW9PczjA6qcdw-QQOAWtwHENqF1iHOp3lNoKzbl5PwxFcQVP0GRNic1HJN4YeE7IjquySFUGlSwAVHKqPODaGf6NrG2EItf-Pvm0afbP5rHPVxhpEMHsHjnS3BpDZqTrWKCXo2nzWmFqYhTnbk-smOduNTEzA4-sCoQ6xLfMRUGF2_U5aVp0GMjbKevxwlnixsHB8t9kU3S5zhdcSrnkTN8U3amIEuX3GPWF7N24w6uYZzqSuAMoiVxNzNQyACJ-zleDJMhfLrZZCCND-yxrAYNkpMiKYU5TMkdpP5whwms6R-pTy3yKn-JknPiaIWxJ7g8OE2Ucg_9Bm0_ooeiQjMM7QfuYWGf9Dx9f3h1mETECZ-pIZxdmETRK-E0sNtse6dUPNdgDA4CFADDxP02Fsaqcpj4zNhKQNxuh8nu7JxgKfE6S7ueogzP_szubfu2PSDKIcY2opsVOLiGCOFxE1wL9-LrPAZ2KeMJ3NEloMsi3GfhgttoxmYGHq0xy9ZwXESYv_ajHHeM339O1gZeU2cJ-e6_Qspf9HSSzTs7JwpDe63hQM6yUoDuneRrrUSazSs5bu0pUVHCE5InV93gIO8aVDZ1VY8HZt1KlBwfZ4nreF33ZaLrwQhWhr82BXtIXNLfjqim2ntxfY3Pb6cNXpBZ2nb70mtwK_J_Lc7_R2drm17ex1Qeq9cp1A3G85O77TzmgfuK2g46dKQeKmfg-j17E8f-V4LzudduJ7x8ecpnGE5wr_XqfnBdwqlit0mVshf8OtUqW8WqmUavVytVyrFUt5_haUpdV6CeT1SnGjXt6oV_t5_o6cF1Zr1Ur_DwjxfxA) ![](https://i.imgur.com/KBR8emO.png) <!-- ``` создаем пустой словарь для файлов создаем словарь для прав доступа {'read': 'R', 'write': 'W', 'execute': 'X'} повторить для введенного с клавиатуры N раз: ввести строку и преобразовать ее в список s добавить в словарь файлов элемент с ключом s[0] и значением в виде списка s, начиная с элемента с индексом 1 и до конца списка повторить для введенного с клавиатуры M раз: ввести операцию и файл если элемент словаря прав доступа с ключом операция есть для файла в словаре файлов: вывести OK иначе: вывести Access denied ``` --> ::: ### [Задача 6. Країни та міста](https://snakify.org/en/lessons/dictionaries_dicts/problems/countries_and_cities/) Наведено список країн і міст кожної країни. Потім дано назви міст. Для кожного міста вкажіть, в якій країні воно знаходиться. ![](https://i.imgur.com/uYN7vWR.png) ::: spoiler Підказка [![](https://mermaid.ink/img/pako:eNqFVctu2kAU_ZXRSJVaCRKMMQ8vumm67KpdFWdhBSdBCnbkGrUpQgpFSio1aXZZdNNfMAQXAoH8wp0_6p07tjEmTR1lmMd9nHvuGbvHD7yWw01-eOJ9Pji2_YB92LNchk-7VXrZhN-wEpcQim-wgvn-q-RIa-5aHMb4F4kBHs6Ya_Hd_eS43LQ47Y_R_RxmZAGPtFjBH1iKW7hnYgALXI5hCTOYM3gQt9LJ4mkcvdeTXjCW-dNALsNpCNN-P7GrNHc3wIhzcQMTCZnhOpSpI_SJ8oju0eQOVgwRhBLOIx4MpNu6FKPXw0onsBA3DOYKfeIVA5a-w7X7XAwLqthLrAsji59yxmDKIMKKI3jA_6UCNmVIxRLjR-gnUz8wzeLryqrIJExhhFYLcSW-J8g3AuWYlHEV4HQ_VCVqDHkbIfTt5sRUZMin1JLECfV_JoOunkgVs5DHpMKkHK3MDYKbpf1MqhqRvN3ptnvaDeJuZ1mpU79nmY7_l5AEJRI5lY1cUFfQI-FKCYg6ETd4LQKtJO_CL2pVJC7ElbwJlvvihcZylwD3yoxKJNbEFSpBDBUDWcmHKFE8u4uvhKR5LJ11lqcBzRLBm9KiwojXDbnjD4VB6TG6aVLsuB4pvzgjoYkgQueNXsiohoqa6jxEnU8Sna9Rhhu-c4gKJKxU6VJyTFznVI57dL6hciqmypKHso0w7zguWiX6N1u5NDIayz5r623loW3tKaKzeiN89Zhs8SNL9_XTWpMob7ZQDtZqW-XURowqjaXv3GLxNeqNxjKNevoypGWFRoPGqpqnr6piEelNNcrEBYl_IYZbgZ6zq9FYV_P0hj7vgxfEcnmBdxy_Y7db-EHpSU-LB8dOx7G4idOWc2h3TwKLW24fTe1u4L0_cw-4Gfhdp8B9r3t0zM1D--QTrrqnLTtw9tr2kW93crtvW-3A89NNh5bv1HeMPmcFfmq7Hz2vk8Q-8iWmOI_jthz_jdd1A25WNbLlZo9_4aZuVHYMQ683KrVKva7pBX6Gm_pOQ8d12dCqjUq1UesX-FeKXdqp14xS5tH6fwEqU-21?type=png)](https://mermaid.live/edit#pako:eNqFVctu2kAU_ZXRSJVaCRKMMQ8vumm67KpdFWdhBSdBCnbkGrUpQgpFSio1aXZZdNNfMAQXAoH8wp0_6p07tjEmTR1lmMd9nHvuGbvHD7yWw01-eOJ9Pji2_YB92LNchk-7VXrZhN-wEpcQim-wgvn-q-RIa-5aHMb4F4kBHs6Ya_Hd_eS43LQ47Y_R_RxmZAGPtFjBH1iKW7hnYgALXI5hCTOYM3gQt9LJ4mkcvdeTXjCW-dNALsNpCNN-P7GrNHc3wIhzcQMTCZnhOpSpI_SJ8oju0eQOVgwRhBLOIx4MpNu6FKPXw0onsBA3DOYKfeIVA5a-w7X7XAwLqthLrAsji59yxmDKIMKKI3jA_6UCNmVIxRLjR-gnUz8wzeLryqrIJExhhFYLcSW-J8g3AuWYlHEV4HQ_VCVqDHkbIfTt5sRUZMin1JLECfV_JoOunkgVs5DHpMKkHK3MDYKbpf1MqhqRvN3ptnvaDeJuZ1mpU79nmY7_l5AEJRI5lY1cUFfQI-FKCYg6ETd4LQKtJO_CL2pVJC7ElbwJlvvihcZylwD3yoxKJNbEFSpBDBUDWcmHKFE8u4uvhKR5LJ11lqcBzRLBm9KiwojXDbnjD4VB6TG6aVLsuB4pvzgjoYkgQueNXsiohoqa6jxEnU8Sna9Rhhu-c4gKJKxU6VJyTFznVI57dL6hciqmypKHso0w7zguWiX6N1u5NDIayz5r623loW3tKaKzeiN89Zhs8SNL9_XTWpMob7ZQDtZqW-XURowqjaXv3GLxNeqNxjKNevoypGWFRoPGqpqnr6piEelNNcrEBYl_IYZbgZ6zq9FYV_P0hj7vgxfEcnmBdxy_Y7db-EHpSU-LB8dOx7G4idOWc2h3TwKLW24fTe1u4L0_cw-4Gfhdp8B9r3t0zM1D--QTrrqnLTtw9tr2kW93crtvW-3A89NNh5bv1HeMPmcFfmq7Hz2vk8Q-8iWmOI_jthz_jdd1A25WNbLlZo9_4aZuVHYMQ683KrVKva7pBX6Gm_pOQ8d12dCqjUq1UesX-FeKXdqp14xS5tH6fwEqU-21) ![](https://i.imgur.com/aQ8jnNX.png) <!-- ``` ввести n содать пустой словарь городов повторить n раз: ввести строку и преобразовать ее в список для каждого города в списке, начиная с элемента с индексом 1: добавить в словарь городов элемент город: список[0] повторить input раз: вывести элемент словаря городов с ключом для ввода ``` --> ::: ### [Задача 7. Частотний аналіз](https://snakify.org/en/lessons/dictionaries_dicts/problems/frequency_analysis/) Даний текст: у першому рядку записано кількість рядків у тексті, а потім самі рядки. Виведіть усі слова, що зустрічаються в тексті, по одному на кожен рядок. Слова мають бути відсортовані за зменшенням їхньої кількості появи в тексті, а при однаковій частоті появи — у лексикографічному порядку. *Вказівка*. Після того, як ви створите словник всіх слів, вам захочеться відсортувати його за частотою слова. Бажаного можна домогтися, якщо створити список, елементами якого будуть кортежі з двох елементів: частота слова і саме слово. Наприклад, `[(2, 'hi'), (1, 'what'), (3, 'is')]`. Тоді стандартне сортування сортуватиме список кортежів, при цьому кортежі порівнюються за першим елементом, а якщо вони рівні — то за другим. Це майже те, що потрібно для завдання. ![](https://i.imgur.com/odQxo9w.png) ::: spoiler Підказка [![](https://mermaid.ink/img/pako:eNqVVs1u2kAQfpXVSpFAAsKfAfvQS9NjT-2pcQ4WNglSsFNjlKYIKQQpqVTa3HLopa_g0DgQCPQVdt-os7PYmL-EImGY3Z2Z75uZz3abVh3TohqtnTrn1RPD9cjHA90m8Kmb2cQh-81m_Ib5_IrN2PgoGW7lDnXKu7A6gP1LNoJ_I8L-ojFjj2zK79gT4V02AXPApmzExoQ9sAm_xVXYHuj0KAyXb7eFMxuIPIt48jz4D1gARgBxZuwPmxE2JGwMsX3wuBPoeE94EYA6wqQ-AdtnQ5Gn0wnTFA73ZTCEDscv-S3EBWYEbF8QCMAvWOX1FKadisBdOCaygNt-xKDYbus0BDyWNZh7RVUA397Cfcx7Ol1gU6CibMjuAfGE9_m3MHcAzgF7FuT51UpFBeRFTec5EGSOAPt7TL6FTKz6pV2bGfEm545rNvOxGOWd-As30TwcqS42W3x_kpprfRbVwX4-iCTQmyvphYGeZeli5GGh6bieZSYQTKbuWY1mIpmMF7VyiKBm8PUlq8EmHogYEwbskSTSAk0K95Ixiup2inF_wJWIBSDSfQdu0Vgs8covEcplcYRH8SEOqzJbTGMuK7T7C_JN4dw17wvl6vbeXo4g8aEsCO9Dm0E62Im4Xn1A2F-dLeGfJ6s6XZxb0umi-ZFSAfVcqfz7ulI1Eb4g4JNljcIPzqEoDM6lUCjY99JvjhdxBCxY7bCIWpRRo8750LmH9eGMe45ZgIAUEn54D9lNYPtmzpv_2KxNUb3brcpMAQsRZq0TAcoSkpZea9KaDsGp_DpBVF91RXwQEcUH7MVCNJ4jLLocURzSJX5Q6I3iw6JVwnpDk2TjJYv_1h7EUrfQinsBtSXF7UQl6vOK2jSCOsnOJ5F_3yg1KbToQZlOvwHR4TUfPdPQLOC1iFdF_o8eGek0DHUkUcKv8Z4-4b21QC-dK-G1HN2I0aysLb4UQpX4JQ01ut-97AT3GN2mKdqw3IZRN-Edoi08deqdWA1Lp1BIalo1o3Xq6VS3O3DUaHnOhwu7SjXPbVkp6jqt4xOq1YzTJlitM9PwrIO6cewajZXVd2bdc9xo0ULzvXx1wTeYFD0z7E-O0whjH7sC0zyPZZuW-9Zp2R7VSgqepVqbfqFaQSlmFKVQUYvlYqWSK6ToBSwWMmoB7LySK6nFklrupOhXjJ3NVMpK5x_fnftz?type=png)](https://mermaid.live/edit#pako:eNqVVs1u2kAQfpXVSpFAAsKfAfvQS9NjT-2pcQ4WNglSsFNjlKYIKQQpqVTa3HLopa_g0DgQCPQVdt-os7PYmL-EImGY3Z2Z75uZz3abVh3TohqtnTrn1RPD9cjHA90m8Kmb2cQh-81m_Ib5_IrN2PgoGW7lDnXKu7A6gP1LNoJ_I8L-ojFjj2zK79gT4V02AXPApmzExoQ9sAm_xVXYHuj0KAyXb7eFMxuIPIt48jz4D1gARgBxZuwPmxE2JGwMsX3wuBPoeE94EYA6wqQ-AdtnQ5Gn0wnTFA73ZTCEDscv-S3EBWYEbF8QCMAvWOX1FKadisBdOCaygNt-xKDYbus0BDyWNZh7RVUA397Cfcx7Ol1gU6CibMjuAfGE9_m3MHcAzgF7FuT51UpFBeRFTec5EGSOAPt7TL6FTKz6pV2bGfEm545rNvOxGOWd-As30TwcqS42W3x_kpprfRbVwX4-iCTQmyvphYGeZeli5GGh6bieZSYQTKbuWY1mIpmMF7VyiKBm8PUlq8EmHogYEwbskSTSAk0K95Ixiup2inF_wJWIBSDSfQdu0Vgs8covEcplcYRH8SEOqzJbTGMuK7T7C_JN4dw17wvl6vbeXo4g8aEsCO9Dm0E62Im4Xn1A2F-dLeGfJ6s6XZxb0umi-ZFSAfVcqfz7ulI1Eb4g4JNljcIPzqEoDM6lUCjY99JvjhdxBCxY7bCIWpRRo8750LmH9eGMe45ZgIAUEn54D9lNYPtmzpv_2KxNUb3brcpMAQsRZq0TAcoSkpZea9KaDsGp_DpBVF91RXwQEcUH7MVCNJ4jLLocURzSJX5Q6I3iw6JVwnpDk2TjJYv_1h7EUrfQinsBtSXF7UQl6vOK2jSCOsnOJ5F_3yg1KbToQZlOvwHR4TUfPdPQLOC1iFdF_o8eGek0DHUkUcKv8Z4-4b21QC-dK-G1HN2I0aysLb4UQpX4JQ01ut-97AT3GN2mKdqw3IZRN-Edoi08deqdWA1Lp1BIalo1o3Xq6VS3O3DUaHnOhwu7SjXPbVkp6jqt4xOq1YzTJlitM9PwrIO6cewajZXVd2bdc9xo0ULzvXx1wTeYFD0z7E-O0whjH7sC0zyPZZuW-9Zp2R7VSgqepVqbfqFaQSlmFKVQUYvlYqWSK6ToBSwWMmoB7LySK6nFklrupOhXjJ3NVMpK5x_fnftz) ![](https://i.imgur.com/1dXyk4h.png) <!-- ``` создать пустой словарь для слов повторить для введенного с клавиатуры числа раз: ввести строку и преобразовать ее в список для каждого слова в списке: увеличить элемент словаря для слова на 1, или создать его создать пустой список words2 для каждого слова word c частотой freq в отсортированном словаре sorted(words.items()): добавить в список words2 кортеж (-freq, word) для каждого кортежа (freq, word) в отсортированном списке sorted(words2): вывести слово ``` --> ::: ### [Задача 8. Англо-латинський словник](https://snakify.org/en/lessons/dictionaries_dicts/problems/english_latin_dict/) Якось, розбираючи старі книги на горищі, школяр Вася знайшов англо-латинський словник. Англійську він на той час знав досконало, і його мрією було вивчити латину. Тому словник, що попався, був якраз до речі. На жаль, для повноцінного вивчення мови недостатньо лише одного словника: крім англо-латинського необхідний ще й латинсько-англійській. Через брак кращого він вирішив зробити другий словник з першого. Як відомо, словник складається з слів, що перекладаються, до кожного з яких наводиться кілька слів-перекладів. Для кожного латинського слова, що зустрічається десь у словнику, Вася пропонує знайти всі його переклади (тобто всі англійські слова, для яких наше латинське зустрічалося в його списку перекладів), і вважати їх і лише їх перекладами цього латинського слова. Допоможіть Васі виконати роботу зі створення латинсько-англійського словника з англо-латинського. У першому рядку міститься єдине ціле число N - кількість англійських слів у словнику. Далі слідує `N` описів. Кожен опис міститься в окремому рядку, в якому записано спочатку англійське слово, потім відокремлений пробілами дефіс, потім розділені комами з пробілами переклади цього англійського слова на латинську. Усі слова складаються лише з маленьких латинських літер. Переклади відсортовані у лексикографічному порядку. Порядок проходження англійських слів у словнику також лексикографічний. Виведіть відповідний даному латинсько-англійський словник, точно дотримуючись формату вхідних даних. Зокрема, першим має йти переклад лексикографічно мінімального латинського слова, далі другого в цьому порядку і т.д. Всередині перекладу англійські слова також мають бути відсортовані лексикографічно. ![](https://i.imgur.com/jGGZJEv.png) ::: spoiler Підказка [![](https://mermaid.ink/img/pako:eNqlVs1u2kAQfpXVSpFaCQhgDNiH9tD02F7aU3EOVnASpGBH1KhNEVISpPRQJA6tcuilr0BdaBwI7ivsvkKfpDOz2Ji_RFEtxfHuzn7zzc-3S4cfeHWHm_zwxPtwcGy3fPZ2z3IZPI16_klN_BCR_CyG8lJEYrL_NF4q1CwuL2A2gPVzEcJXyMQfGkTit5jJa3HL5IWYwjAQMxGKicX34-3FTgeNRYC4yf7XDD6H4qbbje202i7sDsSYfIWwLgdihFQYjIeMvN2IEXibxiRuYeqXiBg4HTKAm8FomltwieZbL4BBCG8EgyUIURkBVrCbMC11OhYHl1M5YGKiYosdpDYRMoD2FrgT2bP4IhQdcdZ3ANpY3MH0t_nmVMJg4jlAxAjlGjGJ4G-oQh1hMEtbFCIOx-v8InNLPgaYz1Q-UpWqbHBKudgQSrCS1A2-UshVqm2Yqi75CSDDIfRPby2yRVGMxxYFGu0auuQCm41aOSBykbjbkPR01Qr52i64WuapFtfTy_6ef70vBdhZSf5msq8oW3wRWCGPmvsOhtAW8kr2UXGWu7NTYIR4o8og-6A12SM6UVpnQwivj_ZFtqov2BPry0QLjVEQS-qCf6Qo7DxSG1qDy7FSF7odY2NtVRaBbNEVmqDjknKcVG8I1Rttr166qyZiTNx1Fj_IHcmxLdKSl3OAJD9ziDJLP0TgJ1AJ4jiDlaTGsoo2CottURaFt6ItcL7wG2Iu4YBVpCoPkPo_6YGDKirhy7Lkpqtyw3gHaG08qkrQaJeJwkLqI6Uy0tmmGhTyqgWXGa0nN_tQcAtRQX-ipEhOyTWWzT4DadG7mNxANNToXaK3npzU2SzeEGJC02VlklrEy40mK8tLAAPKSaTL5BWdW1PZW3O91Q4Nq_Q2FGtF3khOvvt9wPlhuTzDm06raTfqcK93cKfF_WOn6VjchM-6c2i3T3yLW24XTO227705cw-46bfaToa3vPbRMTcP7ZP3MGqf1m3f2WvYRy27uTL7st7wvVYy6dDwlfo5Qb8qMvzUdt95XjPGPmohp7kfx607rRde2_W5aWhky80O_8hNTS_ldF2rGqVKqVotwNoZTGo5Q4NxUS-UjVLZqHQz_BNh53PVit79BzGXxts?type=png)](https://mermaid.live/edit#pako:eNqlVs1u2kAQfpXVSpFaCQhgDNiH9tD02F7aU3EOVnASpGBH1KhNEVISpPRQJA6tcuilr0BdaBwI7ivsvkKfpDOz2Ji_RFEtxfHuzn7zzc-3S4cfeHWHm_zwxPtwcGy3fPZ2z3IZPI16_klN_BCR_CyG8lJEYrL_NF4q1CwuL2A2gPVzEcJXyMQfGkTit5jJa3HL5IWYwjAQMxGKicX34-3FTgeNRYC4yf7XDD6H4qbbje202i7sDsSYfIWwLgdihFQYjIeMvN2IEXibxiRuYeqXiBg4HTKAm8FomltwieZbL4BBCG8EgyUIURkBVrCbMC11OhYHl1M5YGKiYosdpDYRMoD2FrgT2bP4IhQdcdZ3ANpY3MH0t_nmVMJg4jlAxAjlGjGJ4G-oQh1hMEtbFCIOx-v8InNLPgaYz1Q-UpWqbHBKudgQSrCS1A2-UshVqm2Yqi75CSDDIfRPby2yRVGMxxYFGu0auuQCm41aOSBykbjbkPR01Qr52i64WuapFtfTy_6ef70vBdhZSf5msq8oW3wRWCGPmvsOhtAW8kr2UXGWu7NTYIR4o8og-6A12SM6UVpnQwivj_ZFtqov2BPry0QLjVEQS-qCf6Qo7DxSG1qDy7FSF7odY2NtVRaBbNEVmqDjknKcVG8I1Rttr166qyZiTNx1Fj_IHcmxLdKSl3OAJD9ziDJLP0TgJ1AJ4jiDlaTGsoo2CottURaFt6ItcL7wG2Iu4YBVpCoPkPo_6YGDKirhy7Lkpqtyw3gHaG08qkrQaJeJwkLqI6Uy0tmmGhTyqgWXGa0nN_tQcAtRQX-ipEhOyTWWzT4DadG7mNxANNToXaK3npzU2SzeEGJC02VlklrEy40mK8tLAAPKSaTL5BWdW1PZW3O91Q4Nq_Q2FGtF3khOvvt9wPlhuTzDm06raTfqcK93cKfF_WOn6VjchM-6c2i3T3yLW24XTO227705cw-46bfaToa3vPbRMTcP7ZP3MGqf1m3f2WvYRy27uTL7st7wvVYy6dDwlfo5Qb8qMvzUdt95XjPGPmohp7kfx607rRde2_W5aWhky80O_8hNTS_ldF2rGqVKqVotwNoZTGo5Q4NxUS-UjVLZqHQz_BNh53PVit79BzGXxts) ![](https://i.imgur.com/BAKkiM7.png) <!-- ``` создать пустой словарь повторить N раз: ввести строку и разделить ее на англ. слово и список лат. слов для каждого лат. слова в списке: если лат. слова нет в словаре: добавить в словарь новое лат. слово : англ. слово как список иначе: добавить для лат. слова в список англ. слово вывести длину словаря для каждого лат. слова в отсортированном словаре: вывести лат. слово - список англ. слов для него ``` --> ::: ## Підвищений рівень ### Задача 9. Контрольна за наголосами <!-- ### [Задача 9. Контрольна за наголосами](http://pythontutor.ru/lessons/dicts/problems/english_latin_dict/) --> Вчителька задала Петі домашнє завдання - у заданому тексті розставити наголоси в словах, після чого доручила Васі перевірити це домашнє завдання. Вася дуже погано знайомий з цією темою, тому він знайшов словник, в якому зазначено, як ставляться наголоси в словах. На жаль, у цьому словнику присутні не всі слова. Вася вирішив, що в словах, яких немає в словнику, він вважатиме, що Петя поставив наголос правильно, якщо в цьому слові Петей поставлено рівно один наголос. Виявилося, що в деяких словах наголос може бути поставлений більше ніж одним способом. Вася вирішив, що у разі якщо те, як Петя поставив наголос, відповідає одному з наведених у словнику варіантів, він буде зараховувати це як правильну розстановку наголосу, а якщо не відповідає, то як помилку. Вам дано словник, яким користувався Вася та домашнє завдання, здане Петею. Ваше завдання – визначити кількість помилок, яку в цьому завданні нарахує Вася. Вводиться спочатку число `N` - кількість слів у словнику. Далі йде N рядків зі словами зі словника. Кожне слово складається не більше ніж із 30 символів. Усі слова складаються з малих і великих латинських букв. У кожному слові велика рівно одна літера - та, на яку потрапляє наголос. Слова у словнику розташовані в алфавітному порядку. Якщо є кілька можливостей розміщення наголосу в тому самому слові, то ці варіанти в словнику йдуть у довільному порядку. Далі йде вправа, виконана Петею. Вправа є рядком тексту, сумарним обсягом не більше 300000 символів. Рядок складається зі слів, які розділяються між собою рівно одним пробілом. Довжина кожного слова не перевищує 30 символів. Усі слова складаються з малих і великих латинських букв (великими позначені ті букви, для яких Петя поставив наголос). Петя міг помилково в якомусь слові поставити більше одного наголосу або не поставити наголосу зовсім. Виведіть кількість помилок у Петиному тексті, які знайде Вася. ![](https://i.imgur.com/FlUZhzZ.png) ::: spoiler Підказка <!-- [![](https://mermaid.ink/img/pako:eNqtVs1u2kAQfpWVpUqtlCgY8kM4tJf02F7aU-McrEAapAARBVUVQgpESiqVlEuUSr30FRwnLg4EeIXdN-o347-1oSmHcjDr2dmZb_4-b8c4bJQrRsk4Oml8Pjy2my3xfs-qC_yq5dzzfflLztSldFRfzuT44EW0Ze5bhupB6mL_TPpY-ULO-WUmf8upupEPQvXkBK-unEpfjvkVctcyDiI7-U6HTkmXHMSG3gosHTnqdiO9wv4GzLjSY6d-Ynm2Edva7BCmUO4IC3J1Ltg3ARpA_ggBTHvyTt2QJXWmblgRWp58RJzXQroZ3DjzyjJiKFsIXd5j-57TgrAf8HInZ4KkmbMhDjkSWE_Ud-QSflbDpYZBzubISo_Sr-VtOwtCXUhPy0qABQYnHJcHP31gWQ2cZsX9N04N1Q6hmnMZe9wZP4IEoeqw7eN_EKeUy_5IQgpN5DQzxU6Ho5uoISHjfgpTrNWXoPQBZcxAACPpll06P0arkcNxCHVAoThkhUxAhE6MmiQyi6xT4igsShJSci3MVPXN3GKXrZKlbJdpTpOUOPIWMYaaGtRgsqjzHahTSaeR3pwnxY2TO0ujNbki7MWD5lSdU0Vgahh2yCjxAx1qCXSSz_1wrpXEzJOhkbwNkqq-RiO_UNpMYXUbGGIYIazJIK9gIJlwM0eU9BMYkEh1oQZESFb92TNT8ISMgnGgUs8RaY9ZS6MhB5UYxK90MC-y9AOFiH5KpFEg1-Iv5EMKm4GCx1Jf71CtL4LB4p7g9Pdpzf2g-inGcWiDHW-J6MeDfhuUOYjOC_jGXQwtGWXkcAUEqHiWZeA7cOtTFxIpMJ7tJ_AAyJVONWlcwwVcyylmOUR1RcXJJH1H6DwTwsCRS0oo9xMP1IwalYaKGQbniiLhFQc-7xd5hYKJeSWMfTddYyYlLNhd-BXERHP3nfF0-mg7vTyeCOeUJtRkm2YuSej_bB7Bk-OLuI7BLwPPW84pi3wSYDWF_tPZBGTAbDJe4BKiuJBLpMNW8hESl79MlL9llUvVjQ8W4FJ9S43gEwfISXyHWV9_CeLgZz6-dfBrgZ-b8fVhfZ2TMWbxVvoENulOw8LtBWP8rQkpSeNP1tvhZ5Gfu_EHKuXLzGny2I2ZT2gvrR5EU9S3l53KC0iEplh8AimfLYRwgMdYM2qVZs2ulnE57JAFy2gdV2oVyyhhWa4c2e2TlmVY9S5U7Xar8e5L_dAotZrtyprRPi3brcpe1f7YtGtG6cg--RRLX5errUYzFp7a9Q-NRqJU4e03wa2UL6fdP_839Us?type=png)](https://mermaid.live/edit#pako:eNqtVs1u2kAQfpWVpUqtlCgY8kM4tJf02F7aU-McrEAapAARBVUVQgpESiqVlEuUSr30FRwnLg4EeIXdN-o347-1oSmHcjDr2dmZb_4-b8c4bJQrRsk4Oml8Pjy2my3xfs-qC_yq5dzzfflLztSldFRfzuT44EW0Ze5bhupB6mL_TPpY-ULO-WUmf8upupEPQvXkBK-unEpfjvkVctcyDiI7-U6HTkmXHMSG3gosHTnqdiO9wv4GzLjSY6d-Ynm2Edva7BCmUO4IC3J1Ltg3ARpA_ggBTHvyTt2QJXWmblgRWp58RJzXQroZ3DjzyjJiKFsIXd5j-57TgrAf8HInZ4KkmbMhDjkSWE_Ud-QSflbDpYZBzubISo_Sr-VtOwtCXUhPy0qABQYnHJcHP31gWQ2cZsX9N04N1Q6hmnMZe9wZP4IEoeqw7eN_EKeUy_5IQgpN5DQzxU6Ho5uoISHjfgpTrNWXoPQBZcxAACPpll06P0arkcNxCHVAoThkhUxAhE6MmiQyi6xT4igsShJSci3MVPXN3GKXrZKlbJdpTpOUOPIWMYaaGtRgsqjzHahTSaeR3pwnxY2TO0ujNbki7MWD5lSdU0Vgahh2yCjxAx1qCXSSz_1wrpXEzJOhkbwNkqq-RiO_UNpMYXUbGGIYIazJIK9gIJlwM0eU9BMYkEh1oQZESFb92TNT8ISMgnGgUs8RaY9ZS6MhB5UYxK90MC-y9AOFiH5KpFEg1-Iv5EMKm4GCx1Jf71CtL4LB4p7g9Pdpzf2g-inGcWiDHW-J6MeDfhuUOYjOC_jGXQwtGWXkcAUEqHiWZeA7cOtTFxIpMJ7tJ_AAyJVONWlcwwVcyylmOUR1RcXJJH1H6DwTwsCRS0oo9xMP1IwalYaKGQbniiLhFQc-7xd5hYKJeSWMfTddYyYlLNhd-BXERHP3nfF0-mg7vTyeCOeUJtRkm2YuSej_bB7Bk-OLuI7BLwPPW84pi3wSYDWF_tPZBGTAbDJe4BKiuJBLpMNW8hESl79MlL9llUvVjQ8W4FJ9S43gEwfISXyHWV9_CeLgZz6-dfBrgZ-b8fVhfZ2TMWbxVvoENulOw8LtBWP8rQkpSeNP1tvhZ5Gfu_EHKuXLzGny2I2ZT2gvrR5EU9S3l53KC0iEplh8AimfLYRwgMdYM2qVZs2ulnE57JAFy2gdV2oVyyhhWa4c2e2TlmVY9S5U7Xar8e5L_dAotZrtyprRPi3brcpe1f7YtGtG6cg--RRLX5errUYzFp7a9Q-NRqJU4e03wa2UL6fdP_839Us) ``` создать пустой словарь слов повторить N раз: ввести слово если слова в нижнем регистре нет в словаре: добавить его в словарь с ключом в нижнем регистре как список иначе: добавить в элемент словаря с ключом слово в нижнем регистре это слово присвоить счетчику ошибок 0 для каждого слова в тексте: если количество ударений в слове равно 1: если слова в нижнем регистре нет в словаре или ударение поставлено правильно: вернуться к заголовку цикла увеличить счетчик ошибок вывести счетчик ошибок ``` ![](https://i.imgur.com/LHC2fja.png) --> ::: ### Задача 10. Продажі <!-- ### [Задача 10. Продажі](http://pythontutor.ru/lessons/dicts/problems/sales/) --> Дана база даних о продажах деякого інтернет-магазину. Кожен рядок вхідного файлу є запис виду `Покупець товар кількість`, де `Покупець` - ім'я покупця (рядок без пробілів), `товар` - назва товару (рядок без пробілів), `кількість` - кількість придбаних одиниць товару. Створіть список всіх покупців, а кожного покупця підрахуйте кількість придбаних їм одиниць кожного виду товарів. Список покупців, а також список товарів для кожного покупця потрібно виводити у лексикографічному порядку. ![](https://i.imgur.com/Bhc2AxZ.png) ::: spoiler Підказка <!-- ``` from sys import stdin создаем пустой словарь продаж for line in stdin.readlines(): ввести клиента, товар и количество если клиента нет в словаре продаж: добавить в словарь элемент с ключом клиент и значением словарь, в котором элемент товар: количество иначе: увеличить количество проданного товара для клиента или создать новый элемент в словаре клиента для каждого клиента в отсортированном словаре продаж: вывести клиент: для каждого товара в отсортированном словаре продаж клиента: вывести товар, количесто продаж ``` ![](https://i.imgur.com/FQmES1G.png) --> ::: ### Задача 11. Родовід: підрахунок рівнів <!-- ### [Задача 11. Родовід: підрахунок рівнів](http://pythontutor.ru/lessons/dicts/problems/genealogy_level_count/) --> У генеалогічному дереві в кожної людини, крім родоначальника, є один батько. Кожному елементу дерева зіставляється ціле невід'ємне число, яке називається висотою. У родоначальника висота дорівнює 0, будь-якого іншого елемента висота на 1 більше, ніж у його батька. Вам дано генеалогічне дерево, визначте висоту його елементів. Програма отримує на вхід кількість елементів у генеалогічному дереві `N`. Далі слідує N-1 рядок, що задають батька для кожного елемента дерева, крім родоначальника. Кожен рядок має вигляд `ім'я_нащадок ім'я_батька`. Програма має вивести список усіх елементів дерева у лексикографічному порядку. Після виведення імені кожного елемента потрібно вивести його висоту. ::: spoiler Підказка <!-- ``` функция высота(человек): если человека нет в дереве: вернуть 0 иначе: вернуть 1 + высота(дерево[человек]) создать пустой словарь для дерева создать пустой список для людей повторить N - 1 раз: ввести потомка и родителя добавить в дерево элемент с ключом потомок и значением родитель если потомка нет в списке людей: добавить в список людей если родителя нет в списке людей: добавить в список людей для каждого человека в отсортированном списке людей: вывести человека и значение функции высота для него ``` ![](https://i.imgur.com/gXnnNeE.png) --> ::: ### Задача 12. Родовід: предки та нащадки <!-- ### [Задача 12. Родовід: предки та нащадки](http://pythontutor.ru/lessons/dicts/problems/genealogy_ancestors_and_descendants/) --> Дано два елементи в дереві. Визначте, чи є один із них нащадком іншого. У вхідних даних записано дерево в тому ж форматі, що і в попередній задачі. Далі йде число запитів `K`. У кожному з наступних `K` рядків містяться імена двох елементів дерева. Для кожного такого запиту виведіть одне з трьох чисел: 1, якщо перший елемент є предком другого, 2, якщо другий є предком першого або 0, якщо жоден з них не є предком іншого. ::: spoiler Підказка <!-- ``` функция предок(ребенок, родитель): если ребенок нет в словаре дерево: вернуть False иначе если родитель является прямым предком ребенка: вернуть True иначе: вернуть предок(родитель ребенка из дерева, родитель) создать пустой словарь дерево повторить N - 1 раз: ввести ребенка и родителя добавить в дерево элемент ребенок: родитель повторить K раз: ввести человек_1, человек_2 если предок(человек_2, человек_1): вывести 1 иначе если предок(человек_1, человек_2): вывести 2 иначе: вывести 0 ``` ![](https://i.imgur.com/n9AzbBr.png) --> ::: ### Задача 13. Родовід: LCA <!-- ### [Задача 13. Родовід: LCA](http://pythontutor.ru/lessons/dicts/problems/genealogy_lca/) --> У генеалогічному дереві визначте для двох елементів найменшого загального предка (*Lowest Common Ancestor*). Найменшим загальним предком елементів `A` і `B` є такий елемент `C`, що `С` є предком `A`, `C` є предком `B`, при цьому глибина `C` є найбільшою з можливих. При цьому елемент вважається своїм предком. Формат вхідних даних аналогічний попередньому завданню. Для кожного запиту виведіть найменший загальний предок даних елементів. --- (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;">