diff --git a/.github/github/opensource.py b/.github/github/opensource.py new file mode 100644 index 00000000..a21c1fda --- /dev/null +++ b/.github/github/opensource.py @@ -0,0 +1,40 @@ +"""Практика по Poen Source.""" + +# 1) Есть ли у него лицензия? Обычно в корне репозитория находится файл LICENSE. +# - да файл называется LICENSE.txt +# 2) Напишите название понравившейся компании и ссылку на репозиторий +# - компания называется statsmodels, ссылка на их репозиторий: +# http://github.com/statsmodels/statsmodels +# 3) Проект активно принимает стороннюю помощь? +# - да, есть свежие issues от 5 дней и более +# 4) Напишите второе улучшение которое вы сделали +# - заменил текст в файле на более читаемый, так же подсветил +# предостережения и визуально улучшил его +# 5) Посмотрите на коммиты в основной ветке, напишите общее количество +# - 15742 коммита +# 6) Когда был последний коммит? +# - 5 дней назад +# 7) Сколько контрибьюторов у проекта? +# - 396 +# 8) Как часто люди коммитят в репозиторий? (На GitHub выяснить это можно, кликнув по ссылке «Commits» в верхней панели.) +# - очень часто +# Сколько сейчас открытых ишью? +# - 2736 +# 9) Быстро ли мейнтейнеры реагируют на ишью после того, когда они открываются? +# - в течении 3-х дней +# 10) Ведётся ли активное обсуждение ишью? +# - да, через Labels можно отсортировань обсуждения и посмотреть их. +# 11) Есть ли недавно созданные ишью? +# - да +# 12) Есть ли закрытые ишью? (На странице Issues GitHub-репозитория щелкните на вкладку «Closed», чтобы увидеть закрытые ишью.) +# - да,2841 +# 13) Сколько сейчас открытых пул-реквестов? +# - 185 +# 14) Быстро ли мейнтейнеры реагируют на пул-реквесты после их открытия? +# - да, до 3-х дней +# 15) Ведётся ли активное обсуждение пул-реквестов? +# - да, так же через Labels можно отсортировать обсыждения и посмотреть их +# 16) Есть ли недавно отправленные пул-реквесты? +# - 3 недели назад +# 17) Как давно были объединены пул-реквесты? (На странице Pull Request GitHub-репозитория щелкните на вкладку «Closed», чтобы увидеть закрытые пул-реквесты.) +# - 5 дней назад diff --git a/.github/github/quiz.py b/.github/github/quiz.py new file mode 100644 index 00000000..a5caad32 --- /dev/null +++ b/.github/github/quiz.py @@ -0,0 +1,157 @@ +"""Ответы на вопросы по GitHub.""" + +# ## GitHub +# 1) Что такое GitHub? +# - это крупнейшее хранилище Git репозиториев, а так же центр сотрудничества для +# миллионов разработчиков и проектов. Огромный процент всех репозиториев хранится на +# GitHub, а многие проекты с открытым исходным кодом используют его ради Git хостинга, +# баг-трекера, рецензирования кода и других вещей. +# 2) Как GitHub связан с Git? +# - это хостинг-платформа для Git-репозиториев, которая расширяет возможности Git, +# добавляя веб-интерфейс, инструменты для командной работы и интеграции. +# 3) Чем отличается fork репозитория от его клонирования (clone)? +# - это ответвление от проекта который нам интересен, он просто кланируется +# в ваш репозиторий в GitHub. Мы можем создавать свои собственные ветвления (fork), +# вносить туда изменения, а затем отправлять свои внесённые изменения в +# оригинальный репозиторий проекта путём создания запроса на принятие изменений +# (Pull Request) +# - Clone — скачивание репозитория к нам на компьютер +# 4) Зачем нужны и как работают pull requests? +# - позволяет создать запрос на принятие изменений, который отправит твои изменения +# в оригинальный репозиторий +# -сверху есть зеленая кнопка,если нажать на эту кнопку, появится экран ввода +# заголовка и описания предлагаемых изменений на рассмотрение владельцу проекта. +# Рекомендуется серьёзно подойти к составлению описания и сделать его максимально +# информативным, чтобы владелец проекта понимал, зачем эти изменения и какую пользу +# они принесут. +# 5) GitHub использует ваш почтовый адрес для привязки ваших Git коммитов к вашей учётной записи? +# - Да +# 6) Какая команда генерирует SSH ключ для Доступа по SSH к репозиторию (Рисунок 83) +# - ssh-keygen -o +# ## Внесение собственного вклада в проекты +# - Ссылка на ответвление: +# https://github.com/ViktorVinogradov89/Data-Science-For-Beginners-from-scratch-SENATOROV/tree/main +# +# - создайте ветку dev в ФОРКЕ Data-Science-For-Beginners, вставьте сюда ссылку на вашу ветку dev +# https://github.com/ViktorVinogradov89/Data-Science-For-Beginners-from-scratch-SENATOROV/tree/dev +# +# - ссылка на закрытие пул реквеста +# https://github.com/ViktorVinogradov89/Data-Science-For-Beginners-from-scratch-SENATOROV/pulls?q=is%3Apr+is%3Aclosed +# +# 1) Как посмотреть какие файлы были в репозитории на момент определенного +# коммита? +# - В нашем репозитории нажимаем выбираем нужную нам ветку, нажимаем на +# commits, чтобы просмотреть всю историю коммитов, нажимаем browse, смотрим +# на изменения +# 2) как открыть запрос слияния, указывающий на другой запрос слияния и зачем это нужно? +# открыть: +# - Перейдите в свой форк на GitHub +# - Нажмите "Pull requests" → "New pull request" +# - Выберите: +# - Base: ветка в оригинальном репо (обычно main) +# - Head: ваша ветка (например dev) +# - Заполните: +# - Title: "UPDATE README (#310)" +# - Description: "Closes #310" +# - Нажмите "Create pull request" +# Это нужно для: +# - Предотвращает конфликты (изменения применяются по порядку). +# - Показывает логическую связь между задачами. +# - Автоматизирует контроль зависимостей. +# +# ## Рабочий процесс с использованием GitHub +# 1) Напишите 8 пунктов, которые нужно сделать, чтобы внести вклад в чужой проект. +# - Создать Issue +# -Сделать fork +# - Создать ветку dev +# - Внести изменения +# - Сделать commit +# - Отправить PR с привязкой к Issue +# - Прокомментировать и обновить PR +# - Смержить PR (коммит слияния) +# 2) Какие практики принято соблюдать при создании Pull Request чтобы закрыть автоматический issues? +# - описание pull request указывать closes #(номер ишьюса) или +# ссылку на ишьюс, когда закрываем issues в другом репозитории +# 3) Какие практики принято соблюдать при создании commit чтобы закрыть автоматический issues? +# - в title коммита пишем closes (#номер или ссылка), в описании коммита номер или ссылка +# 4) Как отклонить/закрыть пул реквест? (предоставьте скриншот где это в гитхабе) +# - https://drive.google.com/file/d/1tPnHXXLB8qiJmMg8K-G_SG6u8M6YksFq/view?usp=sharing +# 5) Перед отправкой пул реквеста нужно ли создавать ишьюс? +# - Да, чтобы понимать какую проблему это закрывает. +# 6) В какой вкладке можно посмотреть список изменений который был в пул реквесте? (Рисунок 92) +# - Files changed +# 7) В какой вкладке находится страница обсуждений пул реквеста? (Рисунок 94) +# - Conversation +# +# Создание запроса на слияние +# 1) Можно ли открыть пул реквест, если вы ничего не вносили в FORK? +# - нет, для этого нужны измениения +# 2) Что нужно сделать чтобы открыть пул реквест? (Рисунок 90) +# - сделать пуш изменений форка на гитхаб, зайти на главную страницу форка +# -> Pull Requests -> New Pull Request +# 3) Что нужно сделать Если ваш Форк устарел? +# - Нажимаем на кнопку Sync fork, выйдут 2 варианта, либо отменить все коммиты +# которые сделали, либо обновить ветку, не удаляя прошлые конфликты. +# 4) Что нужно сделать если в пул реквесте имеются конфликты слияния (Рисунок 96) +# - Необходимо решить конфликт оставив необходимое. Можно +# решить как в редакторе кода, так и с помощью интерфейса GitHub: Нажимаем +# Resolve conflicts -> решаем конфликт -> Mark as resolved -> Commit merge. +# +# Отрывки кода +# 1) Что нужно сделать Для добавления отрывка кода в комментарии к ишьюсу? (Рисунок 104) +# - заключить его обратными тройными кавычками +# 2) На какую клавишу нажать чтобы выделенный текст был включён как цитата в ваш комментарий?(Рисунок 105) +# - r +# 5.2 Как вставить картинку в ишьюс? (Рисунок 108) +# - перенести картинку в поле Write +# +# Поддержание GitHub репозитория в актуальном состоянии +# 1) Как понять что ваш форк устарел? +# - по надписи This branch is n commits behind original:branch +# 2) Как обновить форк? +# - нажимаем на кнопку Sync fork, появятся 2 варианта, либо отменить все коммиты которые сделали, +# либо обновить ветку не удаляя прошлые конфликты +# +# Добавление участников +# 1) Как добавить участников в ваш репозиторий, чтобы команда могла работать над одним репозиторием? (Рисунок 112) +# - настройки репозитория -> collaborators -> add collaborator +# +# Упоминания и уведомления +# 1) Какой символ нужен для упоминания кого-либо? (Рисунок 118) +# - @ +# 2) Где находится Центр уведомлений, напишите ссылку (Рисунок 121) +# - https://github.com/notifications +# +# Особенные файлы +# 1) Что такое и зачем нужен файл README +# - README.md — это основной информационный файл в проекте: +# Что это? +# - Текстовый файл (обычно в формате Markdown .md). +# - Содержит описание проекта, инструкции по установке, использование и другую ключевую информацию. +# Зачем нужен? +# - Объясняет, что за проект +# - Цель, особенности, технологии. +# - Помогает быстро начать работу +# - Как установить, настроить и запустить. +# - Стандарт для open-source +# - Без README проект выглядит непрофессионально. +# 2) Что такое и зачем нужен файл CONTRIBUTING (Рисунок 122) +# - CONTRIBUTING.md — файл с правилами для участников проекта +# Что это? +# - Файл в корне репозитория (обычно CONTRIBUTING.md). +# - Содержит инструкции для контрибьюторов. +# Зачем нужен? +# - Объясняет, как участвовать +# - Как предлагать изменения, оформлять пул-реквесты, сообщать о багах. +# - Стандартизирует процесс +# - Требования к коду, тестам, коммитам. +# - Упрощает onboarding +# - Новые участники быстрее вникают в проект. +# Управление проектом +# 1) Как измененить основную ветку (Рисунок 123) +# - В настройках репозитория во вкладке options +# 2) Как передать проект? какая кнопка? (рисунок 124) +# - в настройках репозитория кнопка Transfer +# 3) Что такое файл .gitignore? +# - .gitignore - файл, в коротый вносятся названия файлов, +# чтобы их не видел git diff --git a/.github/log.ipynb b/.github/log.ipynb new file mode 100644 index 00000000..0327a2dd --- /dev/null +++ b/.github/log.ipynb @@ -0,0 +1,101 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 3, + "id": "e97f4fe6", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'Инструкция.'" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\"\"\"Инструкция.\"\"\"" + ] + }, + { + "cell_type": "markdown", + "id": "39554614", + "metadata": {}, + "source": [ + "\n", + "\n", + "\n", + "18.06.2025\n", + "\n", + "Intro:\n", + "-Расскажи о себе\n", + "-Регистрация аккаунтов\n", + "-Kaggle\n", + "-ODS.AI\n", + "Скачивание и установка программ:\n", + "-GitHub Desktop\n", + "-Cursor и VS CODE\n", + "-Python (CPython)\n", + "-Git for Windows\n", + "-Джамборд для учёбы\n", + "Скачайте репозиторий на свой компьютер.\n", + "-Поставьте звезду репозиторию\n", + "-Присоединитесь к команде\n", + "-Сделайте Fork\n", + "-Клонируйте репозиторий\n", + "-Откройте ваш репозиторий в github desktop\n", + "-Введите команды в терминал\n", + "\n", + "Stepik:\n", + "(Курс Python-разработчик с Нуля до Open Source:Линтеры.Git.Github)\n", + "-Введение\n", + "-Введение в Python и Github\n", + "-Скачиваем и устанавливаем программы\n", + "-Переменные среды и пакетный менеджер pip\n", + "-Интерпретатор cpython и pypy\n", + "-Скачиваем репозиторий\n", + "-PEP8 и линтеры\n", + "-Виртуальное окружение и файл зависимостей(8.1 Создаём виртуальное окружение и выгружаем зависимости)\n", + "Виртуальное окружение и файл зависимостей:\n", + "8.2 Пакетный менеджер для Data Science\n", + "8.3 Пакетный менеджер нового поколения\n", + "Погружаемся в git\n", + "9.1 Вносим файлы в гитигнор\n", + "9.2 Коммитим и пушим в гитхаб\n", + "9.3 STASH,Откаты, конфликты, командная работа в гитхаб\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "id": "f687a979", + "metadata": {}, + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "base", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.7" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/.github/log.py b/.github/log.py new file mode 100644 index 00000000..550cf593 --- /dev/null +++ b/.github/log.py @@ -0,0 +1,47 @@ +"""Инструкция.""" + +# +# +# +# 18.06.2025 +# +# Intro: +# -Расскажи о себе +# -Регистрация аккаунтов +# -Kaggle +# -ODS.AI +# Скачивание и установка программ: +# -GitHub Desktop +# -Cursor и VS CODE +# -Python (CPython) +# -Git for Windows +# -Джамборд для учёбы +# Скачайте репозиторий на свой компьютер. +# -Поставьте звезду репозиторию +# -Присоединитесь к команде +# -Сделайте Fork +# -Клонируйте репозиторий +# -Откройте ваш репозиторий в github desktop +# -Введите команды в терминал +# +# Stepik: +# (Курс Python-разработчик с Нуля до Open Source:Линтеры.Git.Github) +# -Введение +# -Введение в Python и Github +# -Скачиваем и устанавливаем программы +# -Переменные среды и пакетный менеджер pip +# -Интерпретатор cpython и pypy +# -Скачиваем репозиторий +# -PEP8 и линтеры +# -Виртуальное окружение и файл зависимостей(8.1 Создаём виртуальное окружение и выгружаем зависимости) +# Виртуальное окружение и файл зависимостей: +# 8.2 Пакетный менеджер для Data Science +# 8.3 Пакетный менеджер нового поколения +# Погружаемся в git +# 9.1 Вносим файлы в гитигнор +# 9.2 Коммитим и пушим в гитхаб +# 9.3 STASH,Откаты, конфликты, командная работа в гитхаб +# +# + +# diff --git a/.gitignore b/.gitignore index 0fa2f447..a86a32f4 100644 --- a/.gitignore +++ b/.gitignore @@ -333,3 +333,4 @@ coverage/ /Math/calculus/theory /Math/school_theory +SENATOROV diff --git a/README.md b/README.md index 97dfd73e..265ceedc 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,7 @@ +# Data-Science-For-Beginners-from-scratch-SENATOROV +Командный репозиторий. +## 📢 Community +Join our Telegram channel: https://t.me/RuslanSenatorov # Улучшения репозитория - Улучшен [ишьюс ревью](https://github.com/SENATOROVAI/intro/issues/5), [обновлены пункты 1.7, 3.2](https://github.com/SENATOROVAI/intro/issues/13), спасибо [rizespbya](https://github.com/rizespbya) - Улучшен [ишьюс ревью](https://github.com/SENATOROVAI/intro/issues/5), [обновлены пункты 5.5-5.6](https://github.com/SENATOROVAI/intro/issues/12), спасибо [lessWronger](https://github.com/lessWronger) diff --git a/git/stash.ipynb b/git/stash.ipynb new file mode 100644 index 00000000..deb5f5a5 --- /dev/null +++ b/git/stash.ipynb @@ -0,0 +1,85 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "id": "9d214d02", + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"Работа с Stash.\"\"\"" + ] + }, + { + "cell_type": "markdown", + "id": "7efd0636", + "metadata": {}, + "source": [ + "1) Что делает команда git stash?\n", + "- Сохраняет изменения отслеживаемых файлов в\n", + "временное хранилище стэш\n", + "\n", + "2) Как просмотреть список всех сохранённых изменений (стэшей)?\n", + "- git stash list\n", + "\n", + "3) Какая команда применяется для использования верхнего стэша?\n", + "- git stash apply\n", + "\n", + "4) Как применить конкретный стэш по его номеру?\n", + "- git stash apply stash@{НОМЕР_СТЭША_В_СТЕКЕ}\n", + "- git stash pop stash@{НОМЕР_СТЭША_В_СТЕКЕ}\n", + "\n", + "5) Чем отличается команда git stash apply от git stash pop?\n", + "- git stash apply просто достает стеш, а git stash pop\n", + "достает и затем удаляет стеш из хранилища.\n", + "\n", + "6) Что делает команда git stash drop?\n", + "- удаляет последний(нулевой) стэш из хранилища \n", + "\n", + "7) Как полностью очистить все сохранённые стэши?\n", + "- git stash clear\n", + "\n", + "8) В каких случаях удобно использовать git stash?\n", + "- Всегда, когда необходимо переключиться на другую\n", + "задачу, при этом нужно сохранить свои изменения.\n", + "\n", + "9) Что произойдёт, если выполнить git stash pop, но в проекте есть конфликтующие изменения?\n", + "- Произойдёт конфликт.\n", + "\n", + "10) Можно ли восстановить удалённый стэш после выполнения git stash drop?\n", + "- Нет\n", + "\n", + "11) Что делает команда git stash save \"NAME_STASH\"\n", + "- сохраняет стеш с сообщением, чтобы затем можно было удобно его найти.\n", + "- Сохраняет только отслеживаемые файлы\n", + "\n", + "12) Что делает команда git stash apply \"NUMBER_STASH\"\n", + "- По номеру стеша в стеке востанавливает его без удаления из временного\n", + "хранилища.\n", + "\n", + "13) Что делает команда git stash pop \"NUMBER_STASH\"\n", + "- По номеру стеша в стеке востанавливает его, после чего удаляет из\n", + "хранилища.\n", + "\n", + "14) Сохраните текущие изменения в стэш под названием \"SENATOROV ver1\",вставьте скриншот из терминала\n", + "- ( https://drive.google.com/file/d/1fr5k9bLZpEFRf2fM8XjsJVHMTRLbOwsO/view?usp=drive_link )\n", + "\n", + "15) Внесите любые изменения в ваш репозиторий и сохраните второй стэш под именем \"SENATOROV ver2\"\n", + "- ( https://drive.google.com/file/d/1fr5k9bLZpEFRf2fM8XjsJVHMTRLbOwsO/view?usp=drive_link )\n", + "\n", + "16) Восстановите ваш стэш \"SENATOROV ver1\", вставьте скриншот из терминала\n", + "- ( https://drive.google.com/file/d/1vgn1O9ZloDgi-jidN7aSYJm9O6FGQlxn/view?usp=sharing )\n", + "\n", + "17) Удалите все стеши из истории, вставьте скриншот из терминала\n", + "- ( https://drive.google.com/file/d/1L42QFkpG506cnpuPsusPMuOe7Oeo0Qj2/view?usp=drive_link )" + ] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/git/stash.py b/git/stash.py new file mode 100644 index 00000000..dd2fd4b9 --- /dev/null +++ b/git/stash.py @@ -0,0 +1,56 @@ +# Работа с Stash. + +""" +1) Что делает команда git stash? +- Сохраняет изменения отслеживаемых файлов во временное хранилище стэш. + +2) Как просмотреть список всех сохранённых изменений (стэшей)? +- git stash list + +3) Какая команда применяется для использования верхнего стэша? +- git stash apply + +4) Как применить конкретный стэш по его номеру? +- git stash apply stash@{НОМЕР_СТЭША_В_СТЕКЕ} +- git stash pop stash@{НОМЕР_СТЭША_В_СТЕКЕ} + +5) Чем отличается команда git stash apply от git stash pop? +- git stash apply просто достает стеш, а git stash pop достает и затем удаляет стеш из хранилища. + +6) Что делает команда git stash drop? +- Удаляет последний (нулевой) стэш из хранилища. + +7) Как полностью очистить все сохранённые стэши? +- git stash clear + +8) В каких случаях удобно использовать git stash? +- Всегда, когда необходимо переключиться на другую задачу, при этом нужно сохранить свои изменения. + +9) Что произойдёт, если выполнить git stash pop, но в проекте есть конфликтующие изменения? +- Произойдёт конфликт. + +10) Можно ли восстановить удалённый стэш после выполнения git stash drop? +- Нет. + +11) Что делает команда git stash save "NAME_STASH"? +- Сохраняет стеш с сообщением, чтобы затем можно было удобно его найти. +- Сохраняет только отслеживаемые файлы. + +12) Что делает команда git stash apply "NUMBER_STASH"? +- По номеру стеша в стеке восстанавливает его без удаления из временного хранилища. + +13) Что делает команда git stash pop "NUMBER_STASH"? +- По номеру стеша в стеке восстанавливает его, после чего удаляет из хранилища. + +14) Сохраните текущие изменения в стэш под названием "SENATOROV ver1", вставьте скриншот из терминала. +- (https://drive.google.com/file/d/1fr5k9bLZpEFRf2fM8XjsJVHMTRLbOwsO/view?usp=drive_link) + +15) Внесите любые изменения в ваш репозиторий и сохраните второй стэш под именем "SENATOROV ver2". +- (https://drive.google.com/file/d/1fr5k9bLZpEFRf2fM8XjsJVHMTRLbOwsO/view?usp=drive_link) + +16) Восстановите ваш стэш "SENATOROV ver1", вставьте скриншот из терминала. +- (https://drive.google.com/file/d/1vgn1O9ZloDgi-jidN7aSYJm9O6FGQlxn/view?usp=sharing) + +17) Удалите все стеши из истории, вставьте скриншот из терминала. +- (https://drive.google.com/file/d/1L42QFkpG506cnpuPsusPMuOe7Oeo0Qj2/view?usp=drive_link) +""" diff --git a/python/clean-code/chapter_4_choosing_friendly_names.ipynb b/python/clean-code/chapter_4_choosing_friendly_names.ipynb new file mode 100644 index 00000000..4e0f5caa --- /dev/null +++ b/python/clean-code/chapter_4_choosing_friendly_names.ipynb @@ -0,0 +1,86 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "id": "c29a54b0", + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"Clean code.\"\"\"" + ] + }, + { + "cell_type": "markdown", + "id": "3906fc43", + "metadata": {}, + "source": [ + "## Схемы регистра имен\n", + "\n", + "- Змеиный регистр (snake_case) разделяет слова символом подчеркивания, который напоминает ползущую между словами змею. В этом случае все буквы записываются в нижнем регистре, а константы часто записываются в верхнем змеином регистре (UPPER_SNAKE_CASE).\n", + "- Верблюжий регистр (camelCase) — слова записываются в нижнем регистре, но второе и следующие слова начинаются с заглавной. Эта схема в большин-\n", + "стве случаев подразумевает, что первое слово начинается с буквы нижнего регистра. Буквы верхнего регистра напоминают верблюжьи горбы.\n", + "- Схема Pascal (PascalCase) — названа так, потому что применяется в языке программирования Pascal; аналогична схеме верблюжьего регистра, но первое слово в ней тоже начинается с заглавной.\n", + "\n", + "## Соглашения об именах PEP 8\n", + "\n", + "- Все буквы должны быть буквами ASCII — то есть латинскими буквами верхнего и нижнего регистров без диакритических знаков.\n", + "- Имена модулей должны быть короткими и состоять только из букв нижнего регистра.\n", + "- Имена классов необходимо записывать в схеме Pascal.\n", + "- Имена констант следует записывать в верхнем змеином регистре.\n", + "- Имена функций, методов и переменных записывают в нижнем змеином регистре.\n", + "- Первый аргумент методов всегда должен называться self в нижнем регистре.\n", + "- Первый аргумент методов классов всегда должен называться cls в нижнем регистре.\n", + "- Приватные атрибуты классов всегда начинают с символа подчеркивания ( _ ).\n", + "- Публичные атрибуты классов никогда не начинают с символа подчеркивания ( _ ).\n", + "\n", + "- имена не должны быть слишком короткими или слишком длинными\n", + "## Слишком короткие имена\n", + "\n", + "- Одно- или двухбуквенное имя (например, g), вероятно, обозначает какое-то слово, начинающееся с этой буквы, но таких слов очень много.\n", + "- Сокращения и одно-двухбуквенные имена легко записать, но они плохо читаются. Это замечание относится и к следующему пункту.\n", + "Сокращенные имена вида mon — могут означать monitor, month, monster и множество других слов.\n", + "- Имя из одного слова — например, start (начало) — может трактоваться по-разному: начало чего?\n", + "При отсутствии уточнения другие люди вас вряд ли поймут.\n", + "\n", + "## Префиксы в именахПрефиксы в именах\n", + "\n", + "- Префиксы в именах иногда избыточны. Например, если у вас есть класс Cat с атрибутом weight, очевидно, что weight (вес) относится к кошке (cat). Таким образом, имя catWeight будет слишком подробным и длинным.\n", + "- венгерская запись — практика включения сокращения типа данных в имена. Например, имя strName указывает, что переменная содержит строковое значение, а iVacationDays — что переменная содержит целое число.\n", + "\n", + "## Последовательные числовые суффиксы в именах\n", + "\n", + "- Имена переменных вида payment1, payment2 и payment3 не сообщают читателю кода, чем они различаются. Возможно, программисту стоит преобразовать эти три переменные в один список или переменную-кортеж с именем payments, в которой хранятся три значения.\n", + "\n", + "## Выбирайте имена, пригодные для поиска\n", + "\n", + "- Чтобы имя было найдено немедленно, создавайте уникальные имена с более длинными именами переменных, которые содержат конкретную информацию.\n", + "\n", + "## Избегайте шуток, каламбуров и культурных отсылок\n", + "\n", + "- избегайте шуток, каламбуров и культурных отсылок в своих именах; вместо этого выбирайте имена прямолинейные, традиционные и без отсылок к хохмам.\n", + "\n", + "## Не заменяйте встроенные имена\n", + "\n", + "- Никогда не используйте встроенные имена Python для своих переменных. Например, присвоив переменной имя list или set, вы заместите функции Python list() и set(), что позднее может привести к появлению ошибок. Функция list() создает объекты списков, но ее замена может вызвать ошибку.\n", + "\n", + "## Худшие из возможных имен\n", + "\n", + "- Имя data — ужасное и абсолютно бессодержательное, потому что буквально любая переменная содержит данные (data). То же можно сказать об имени var — все равно что выбрать для собаки кличку Собака. Имя temp часто используется для переменных, содержащих временные данные, но и этот выбор плох: в конце концов, с точки зрения дзен-буддизма все переменные временны. К сожалению, несмотря на неоднозначность, эти имена встречаются часто; избегайте их использования в своем коде." + ] + }, + { + "cell_type": "markdown", + "id": "f34ffea2", + "metadata": {}, + "source": [] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/python/clean-code/chapter_4_choosing_friendly_names.py b/python/clean-code/chapter_4_choosing_friendly_names.py new file mode 100644 index 00000000..1856ebaa --- /dev/null +++ b/python/clean-code/chapter_4_choosing_friendly_names.py @@ -0,0 +1,56 @@ +"""Clean code.""" + +# ## Схемы регистра имен +# +# - Змеиный регистр (snake_case) разделяет слова символом подчеркивания, который напоминает ползущую между словами змею. В этом случае все буквы записываются в нижнем регистре, а константы часто записываются в верхнем змеином регистре (UPPER_SNAKE_CASE). +# - Верблюжий регистр (camelCase) — слова записываются в нижнем регистре, но второе и следующие слова начинаются с заглавной. Эта схема в большин- +# стве случаев подразумевает, что первое слово начинается с буквы нижнего регистра. Буквы верхнего регистра напоминают верблюжьи горбы. +# - Схема Pascal (PascalCase) — названа так, потому что применяется в языке программирования Pascal; аналогична схеме верблюжьего регистра, но первое слово в ней тоже начинается с заглавной. +# +# ## Соглашения об именах PEP 8 +# +# - Все буквы должны быть буквами ASCII — то есть латинскими буквами верхнего и нижнего регистров без диакритических знаков. +# - Имена модулей должны быть короткими и состоять только из букв нижнего регистра. +# - Имена классов необходимо записывать в схеме Pascal. +# - Имена констант следует записывать в верхнем змеином регистре. +# - Имена функций, методов и переменных записывают в нижнем змеином регистре. +# - Первый аргумент методов всегда должен называться self в нижнем регистре. +# - Первый аргумент методов классов всегда должен называться cls в нижнем регистре. +# - Приватные атрибуты классов всегда начинают с символа подчеркивания ( _ ). +# - Публичные атрибуты классов никогда не начинают с символа подчеркивания ( _ ). +# +# - имена не должны быть слишком короткими или слишком длинными +# ## Слишком короткие имена +# +# - Одно- или двухбуквенное имя (например, g), вероятно, обозначает какое-то слово, начинающееся с этой буквы, но таких слов очень много. +# - Сокращения и одно-двухбуквенные имена легко записать, но они плохо читаются. Это замечание относится и к следующему пункту. +# Сокращенные имена вида mon — могут означать monitor, month, monster и множество других слов. +# - Имя из одного слова — например, start (начало) — может трактоваться по-разному: начало чего? +# При отсутствии уточнения другие люди вас вряд ли поймут. +# +# ## Префиксы в именахПрефиксы в именах +# +# - Префиксы в именах иногда избыточны. Например, если у вас есть класс Cat с атрибутом weight, очевидно, что weight (вес) относится к кошке (cat). Таким образом, имя catWeight будет слишком подробным и длинным. +# - венгерская запись — практика включения сокращения типа данных в имена. Например, имя strName указывает, что переменная содержит строковое значение, а iVacationDays — что переменная содержит целое число. +# +# ## Последовательные числовые суффиксы в именах +# +# - Имена переменных вида payment1, payment2 и payment3 не сообщают читателю кода, чем они различаются. Возможно, программисту стоит преобразовать эти три переменные в один список или переменную-кортеж с именем payments, в которой хранятся три значения. +# +# ## Выбирайте имена, пригодные для поиска +# +# - Чтобы имя было найдено немедленно, создавайте уникальные имена с более длинными именами переменных, которые содержат конкретную информацию. +# +# ## Избегайте шуток, каламбуров и культурных отсылок +# +# - избегайте шуток, каламбуров и культурных отсылок в своих именах; вместо этого выбирайте имена прямолинейные, традиционные и без отсылок к хохмам. +# +# ## Не заменяйте встроенные имена +# +# - Никогда не используйте встроенные имена Python для своих переменных. Например, присвоив переменной имя list или set, вы заместите функции Python list() и set(), что позднее может привести к появлению ошибок. Функция list() создает объекты списков, но ее замена может вызвать ошибку. +# +# ## Худшие из возможных имен +# +# - Имя data — ужасное и абсолютно бессодержательное, потому что буквально любая переменная содержит данные (data). То же можно сказать об имени var — все равно что выбрать для собаки кличку Собака. Имя temp часто используется для переменных, содержащих временные данные, но и этот выбор плох: в конце концов, с точки зрения дзен-буддизма все переменные временны. К сожалению, несмотря на неоднозначность, эти имена встречаются часто; избегайте их использования в своем коде. + +# diff --git a/python/commits.ipynb b/python/commits.ipynb new file mode 100644 index 00000000..6d0c1cae --- /dev/null +++ b/python/commits.ipynb @@ -0,0 +1,160 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "id": "1624e5f3", + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"\n", + "Работа с коммитами.\n", + "\n", + "изучение соглашения о коммитах и практика написания коммитов\n", + "\"\"\"" + ] + }, + { + "cell_type": "markdown", + "id": "f4b44d8f", + "metadata": {}, + "source": [ + "feat - используется когда добавляем новую функциональность в проект.\n", + "примеры:\n", + "- Новый файл с функцией,модулем\n", + "- реализуешь новую кооманду\n", + "- дописываешь новый блок логики который отсутствовал\n", + "- делаешь какое-либо уоучшение\n", + "\n", + "fix - тип коммита который используется при исправлении ошибки\n", + "примеры:\n", + "- когда исправил неработающий код\n", + "- устранил неправильный результат\n", + "- исправил ошибку в логике кода\n", + "- удалил или исправил опечатку, влияющую на проверку файла\n", + "\n", + "docs - это тип коммита, который используется, когда ты меняешь документацию,\n", + "не затрагивая код программы.\n", + "примеры:\n", + "- пишешь или редактируешь README.md\n", + "- добавляешь коментарии в код\n", + "- исправляешь опечатки в тексте\n", + "- обновляешь документацию в API\n", + "- редактируешь вики или учебные материалы\n", + "- добавляешь docstring-и в функции/модули\n", + "\n", + "style - тип коммита, который используют,когда ты меняешь оформление кода,\n", + "но не меняешь его поведение.\n", + "примеры:\n", + "- исправляешь отступы, пробелы, пустые строки\n", + "- меняешь форматированиепо PEP8 или линтеру (например, black, flfck8,\n", + " docformatter)\n", + "- переименовываешь переменные для читаемости, но без изменения логики\n", + "- приводить код к единому стилю\n", + "- убирать, добавлять запятые, кавычки, точки с запятой и т.п.\n", + "\n", + "refactor - это тип коммита, который используют, когда меняют структуру кода,\n", + "не добавляя новых фич и не исправляя багов.\n", + "(поведение программы остается тем же, но код становится чище,понятнее, гибче)\n", + "примеры:\n", + "- разбиваешь большую функцию на более мелкие\n", + "- переименовываешь функции и переменные для лучшей читаемости\n", + "- выносишь повторяющийся код в отдельный модуль\n", + "- убираешь \"магические числа\"\n", + "- реорганизуешь структуру файлов\n", + "- переходишь с for-ов на map()/list comprehension, сохраняя логику\n", + "- улучшаешь читаемтость или производительность без изменения логики\n", + "\n", + "test - это тип коммита, который используют, когда ты добавляешь, исправляешь или удаляешь тесты.\n", + "(логика не меняется ты просто работаешьс проверкой кода)\n", + "примеры:\n", + "- добавляешь новые unit-тесты\n", + "- создаешь тестовые сценарии или фикстуры\n", + "- пишешь интергационные/сквозные тесты \n", + "- обновляешь тесты под изменившейся код\n", + "- удаляешь неактуальные тесты\n", + "\n", + "build - это тип коммита, который используют, когда ты вносишь изменения,\n", + " связаные со сборкой проекта или его зависимостями.\n", + " примеры:\n", + "- обновил requirements.txt,pyproject.toml,package.json\n", + "- добавил/изменил Dockerfile, Makefile, .env, .nvmrc и т.д.\n", + "- обновил версии зависимостей\n", + "- добавил конфигурациидля сборщиков (webpack,vite,pyinstaller,nuitka, и т.д.)\n", + "- настроил паковку для публикации(setup,py,build.gradle, и т.д.)\n", + "\n", + "ci - тип коммита, который используют, когда ты меняешь или настраиваешь\n", + "процессы автоматической сборки, тестирования или деплоя проекта\n", + "примеры:\n", + "- настроил .github/workflows/* или .github-ci.ymi\n", + "- добавил/обновил gitHub Actions\n", + "- Изменил скрипты сборки или тестов для CI\n", + "- добавил бейджи в README, отражающие статус сборки/тестов\n", + "- исправил падения CI\n", + "\n", + "perf - это тип коммита, который используют, когда улучшаешь \n", + "производительность кода, не меняя его поведения.\n", + "(код делает то же самое, но более быстрее, эффективнее или экономнее)\n", + "примеры:\n", + "- ускорил алгоритм\n", + "- уменьшил колличество лишних вычислений\n", + "- избавился от лишних запросов к БД/сети\n", + "- заменил неэффективную конструкцию на быструю\n", + "- перевел часть логики на NumPy, Cython, multiprocessing и т.д.\n", + "- уменьшил объём используемой памяти или кешируешь результат\n", + "\n", + "chore - это тип коммита, котрый используют для вспомогательных изменений\n", + "которые:не добовляют новую фичу(feat), не чинят баг(fix), не улучшают\n", + "производительность(perf), не меняют поведение кода вообще.\n", + "примеры:\n", + "- обновили или добавили .gitignire, .editorconfig, .prettierrc, .env.example\n", + "- настроили pre-commit, flake8, black, mypy, eslint и прочие линтеры\n", + "- обновили конфиги IDE, VSCode, Jupyter и т.д\n", + "- установили или обновили dev-зависимости\n", + "- очистили логи, временные файлы\n", + "- добавили служебный README для разработчиков\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "id": "8ba28fb8", + "metadata": {}, + "source": [ + "Представьте, что вы исправили баг в функции, которая некорректно округляет числа.\n", + " Сделайте фиктивный коммит и напишите для него сообщение в соответствии с Conventional Commits (используя тип fix).\n", + "- git-commit -m \"fix: исправлен баг котрый некорректно округляет числа\"\n", + "\n", + "Добавление новой функциональности:\n", + "Допустим, вы реализовали новую функцию generateReport в проекте. Сделайте фиктивный коммит с типом feat, отражающий добавление этой функциональности\n", + "- git-commit -m \"feat: добавил новую функцию generateReport\"\n", + "\n", + "Модификация формата кода или стилей:\n", + "Представьте, что вы поправили отступы и форматирование во всём проекте, не меняя логики кода. Сделайте фиктивный коммит с типом style\n", + "- git-commit -m \"style: поправил отступы и форматирование\"\n", + "\n", + "Документация и тестирование:\n", + "\n", + "Сделайте фиктивный коммит с типом docs, добавляющий или улучшающий документацию для вашей новой функции.\n", + "- git-commit -m \"docs: Добавлен раздел про настройку .pre-commit\"\n", + "\n", + "Сделайте фиктивный коммит с типом test, добавляющий тесты для этой же функции.\n", + "- git-commit -m \"test: добавлена проверка обработки пустого ввода в функцию\"" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "base", + "language": "python", + "name": "python3" + }, + "language_info": { + "name": "python", + "version": "3.12.7" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/python/commits.py b/python/commits.py new file mode 100644 index 00000000..c5667af5 --- /dev/null +++ b/python/commits.py @@ -0,0 +1,122 @@ +"""Работа с коммитами. + +изучение соглашения о коммитах и практика написания коммитов +""" + +# feat - используется когда добавляем новую функциональность в проект. +# примеры: +# - Новый файл с функцией,модулем +# - реализуешь новую кооманду +# - дописываешь новый блок логики который отсутствовал +# - делаешь какое-либо уоучшение +# +# fix - тип коммита который используется при исправлении ошибки +# примеры: +# - когда исправил неработающий код +# - устранил неправильный результат +# - исправил ошибку в логике кода +# - удалил или исправил опечатку, влияющую на проверку файла +# +# docs - это тип коммита, который используется, когда ты меняешь документацию, +# не затрагивая код программы. +# примеры: +# - пишешь или редактируешь README.md +# - добавляешь коментарии в код +# - исправляешь опечатки в тексте +# - обновляешь документацию в API +# - редактируешь вики или учебные материалы +# - добавляешь docstring-и в функции/модули +# +# style - тип коммита, который используют,когда ты меняешь оформление кода, +# но не меняешь его поведение. +# примеры: +# - исправляешь отступы, пробелы, пустые строки +# - меняешь форматированиепо PEP8 или линтеру (например, black, flfck8, +# docformatter) +# - переименовываешь переменные для читаемости, но без изменения логики +# - приводить код к единому стилю +# - убирать, добавлять запятые, кавычки, точки с запятой и т.п. +# +# refactor - это тип коммита, который используют, когда меняют структуру кода, +# не добавляя новых фич и не исправляя багов. +# (поведение программы остается тем же, но код становится чище,понятнее, гибче) +# примеры: +# - разбиваешь большую функцию на более мелкие +# - переименовываешь функции и переменные для лучшей читаемости +# - выносишь повторяющийся код в отдельный модуль +# - убираешь "магические числа" +# - реорганизуешь структуру файлов +# - переходишь с for-ов на map()/list comprehension, сохраняя логику +# - улучшаешь читаемтость или производительность без изменения логики +# +# test - это тип коммита, который используют, когда ты добавляешь, исправляешь или удаляешь тесты. +# (логика не меняется ты просто работаешьс проверкой кода) +# примеры: +# - добавляешь новые unit-тесты +# - создаешь тестовые сценарии или фикстуры +# - пишешь интергационные/сквозные тесты +# - обновляешь тесты под изменившейся код +# - удаляешь неактуальные тесты +# +# build - это тип коммита, который используют, когда ты вносишь изменения, +# связаные со сборкой проекта или его зависимостями. +# примеры: +# - обновил requirements.txt,pyproject.toml,package.json +# - добавил/изменил Dockerfile, Makefile, .env, .nvmrc и т.д. +# - обновил версии зависимостей +# - добавил конфигурациидля сборщиков (webpack,vite,pyinstaller,nuitka, и т.д.) +# - настроил паковку для публикации(setup,py,build.gradle, и т.д.) +# +# ci - тип коммита, который используют, когда ты меняешь или настраиваешь +# процессы автоматической сборки, тестирования или деплоя проекта +# примеры: +# - настроил .github/workflows/* или .github-ci.ymi +# - добавил/обновил gitHub Actions +# - Изменил скрипты сборки или тестов для CI +# - добавил бейджи в README, отражающие статус сборки/тестов +# - исправил падения CI +# +# perf - это тип коммита, который используют, когда улучшаешь +# производительность кода, не меняя его поведения. +# (код делает то же самое, но более быстрее, эффективнее или экономнее) +# примеры: +# - ускорил алгоритм +# - уменьшил колличество лишних вычислений +# - избавился от лишних запросов к БД/сети +# - заменил неэффективную конструкцию на быструю +# - перевел часть логики на NumPy, Cython, multiprocessing и т.д. +# - уменьшил объём используемой памяти или кешируешь результат +# +# chore - это тип коммита, котрый используют для вспомогательных изменений +# которые:не добовляют новую фичу(feat), не чинят баг(fix), не улучшают +# производительность(perf), не меняют поведение кода вообще. +# примеры: +# - обновили или добавили .gitignire, .editorconfig, .prettierrc, .env.example +# - настроили pre-commit, flake8, black, mypy, eslint и прочие линтеры +# - обновили конфиги IDE, VSCode, Jupyter и т.д +# - установили или обновили dev-зависимости +# - очистили логи, временные файлы +# - добавили служебный README для разработчиков +# +# +# + +# Представьте, что вы исправили баг в функции, которая некорректно округляет числа. +# Сделайте фиктивный коммит и напишите для него сообщение в соответствии с Conventional Commits (используя тип fix). +# - git-commit -m "fix: исправлен баг котрый некорректно округляет числа" +# +# Добавление новой функциональности: +# Допустим, вы реализовали новую функцию generateReport в проекте. Сделайте фиктивный коммит с типом feat, отражающий добавление этой функциональности +# - git-commit -m "feat: добавил новую функцию generateReport" +# +# Модификация формата кода или стилей: +# Представьте, что вы поправили отступы и форматирование во всём проекте, не меняя логики кода. Сделайте фиктивный коммит с типом style +# - git-commit -m "style: поправил отступы и форматирование" +# +# Документация и тестирование: +# +# Сделайте фиктивный коммит с типом docs, добавляющий или улучшающий документацию для вашей новой функции. +# - git-commit -m "docs: Добавлен раздел про настройку .pre-commit" +# +# Сделайте фиктивный коммит с типом test, добавляющий тесты для этой же функции. +# - git-commit -m "test: добавлена проверка обработки пустого ввода в функцию" diff --git a/python/cpython.py b/python/cpython.py new file mode 100644 index 00000000..3f9fdf8c --- /dev/null +++ b/python/cpython.py @@ -0,0 +1,117 @@ +"""Изучение CPython и сравнение с PyPy.""" + +# ### Введение в Python и CPython +# +# 1) Что такое CPython и чем он отличается от Python? +# - Python это язык, а CPython это его реализация написанная на C. +# Cpython это и язык программирования, и интерпретатор. +# 2) Сколько существует реализаций Python, и какая из них самая популярная? +# - У Python 6 реализаций, самая популярная CPython +# 3) На каком языке написан CPython? +# - На языке C +# +# ### Поиск и установка CPython +# 4) (опционально) Кто создал CPython? +# - Guido van Rossum +# 5) Почему Python считается быстрым, несмотря на то, что это интерпретируемый +# язык? +# Python «быстрый», потому что: +# - Позволяет быстро писать код +# - Использует оптимизированные C-библиотеки(потому что написан на C) +# - Достаточно шустрый для 90% задач +# 6) Напишите путь к Интерпретатору CPython на вашем компьютере +# C:\Users\USER\AppData\Local\Programs\Python\Python313\python.exe +# +# ### Структура CPython +# 7) Что содержится в папке include в CPython? +# Папка include — это «инструкция по сборке» в ней находятся исходники для: +# - C-расширений +# - встраивания Python в C +# - модификации самого интерпретатора. +# 8) Где можно найти исходный код CPython дайте ссылку на репозиторий гитхаб +# - https://github.com/python/cpython +# 9) (опционально) Как работает интерпретатор CPython при выполнении кода? +# читает и запускает код построчно +# +# ### Запуск файла с помощью CPython +# 10) Какая команда используется для запуска файла с помощью CPython? +# - сначало указываем путь до интерпритатора, затем путь до файла +# 11) Можно ли запускать текстовые файлы через интерпретатор Python? Почему? +# - можно,интерпретатору всё рвно какое расширение файла запускать +# 12) Как указать путь к интерпретатору и файлу для выполнения кода? +# - В проводнике или консоли ищем местонахождение интерпретатора и файла, +# копируем путь через свойства, далее указываем путь до интерпритатора, +# затем путь до файла +# +# ### Введение в PyPy +# 13) Чем PyPy отличается от CPython? +# - PyPy - это нитрепретатор который работает в 10 раз быстрее чем CPython, +# единственный минут что он пока не совместим со всеми проектами на питоне, +# так как достаточно новый +# 14) Почему PyPy не может использоваться для всех проектов на Python? +# - Он пока не совместим со всеми проектами на питоне так как достаточно новый +# 15) Где можно скачать PyPy? +# - https://pypy.org +# +# # Практические задания +# ### Задание 1: Поиск и установка CPython +# Проверьте, установлен ли CPython на вашем компьютере: +# - Используйте поиск в меню "Пуск" (Windows) или терминале (Linux/Mac). +# - Введите команду python --version или python3 --version в терминале. +# Если CPython не установлен, скачайте его с официального сайта Python +# https://www.python.org/downloads/ и установите. +# - Установил +# +# ### Задание 2: Исследование структуры CPython +# Найдите папку, где установлен Python (например, через команду which python в +# терминале или свойства ярлыка). +# Откройте папку include и изучите её содержимое. Какое количество файлов на C +# там есть? +# - 74 +# Перейдите на [GitHub-репозиторий CPython](https://github.com/python/cpython) +# и найдите файл README. Прочитайте информацию о проекте. +# - прочитал +# +# ### Задание 3: Запуск файла с помощью CPython +# Создайте текстовый файл example.txt с содержимым: +# print("Hello from CPython!") +# Запустите файл через команду python <путь_до_файла> (замените +# <путь_до_файла> на фактический путь к вашему файлу). +# Проверьте, что выводится на экран. Попробуйте изменить расширение файла на +# .py и повторите запуск. +# Оба варианта запустились, на экране появилась надпись Hello from CPython! +# +# ### Задание 4: Установка и использование PyPy +# Перейдите на [официальный сайт PyPy](https://www.pypy.org/) и скачайте +# подходящую версию для вашей операционной системы. +# Распакуйте скачанный архив в удобное место. +# Создайте файл example_pypy.py с кодом: +# print("Hello from pypy!") +# Запустите файл через PyPy +# pypy <путь_до_файла> (замените <путь_до_файла> на фактический путь к вашему +# файлу). +# Проверьте, что выводится на экран. Попробуйте изменить расширение файла на +# .py и повторите запуск. +# Интерпритатор так же читает оба формата, выводит надпись Hello from pypy! +# +# Задание 5: Сравнение производительности CPython и PyPy +# +# Создайте файл performance_test.py с кодом: +# import time +# start_time = time.time() +# total = 0 +# for i in range(1, 10000000): +# total += i +# end_time = time.time() +# +# print("Result:", total) +# print("Execution time:", end_time - start_time, "seconds") +# +# Запустите этот файл сначала через CPython, а затем через PyPy. Запишите +# результаты времени выполнения для обоих интерпретаторов +# Сделайте вывод о разнице в производительности. +# CPython: +# - Execution time: 1.8961944580078125 seconds +# PyPy: +# - Execution time: 0.02500152587890625 seconds +# PyPy работает значительно быстрее чем CPython diff --git a/python/issues.py b/python/issues.py new file mode 100644 index 00000000..e85b6688 --- /dev/null +++ b/python/issues.py @@ -0,0 +1,135 @@ +"""Работа с Issues.""" + +# ## Общие вопросы +# 1) Что такое Issues на GitHub и для чего они используются? +# - это система трекинга задач, багов, улучшений и обсуждений +# в проектах на GitHub. Они помогают организовать работу над кодом, +# фиксировать ошибки и планировать новые функции. +# Основные функции: +# - Отслеживания ошибок +# - Планирования новых функций +# - Организации командной работы +# - Обсуждения идей и проблем +# 2) Чем Issues отличаются от других инструментов управления задачами? +# В отличие от универсальных инструментов вроде Jira, Trello или Asana, +# Issues тесно интегрированы с Git и GitHub, что дает уникальные +# преимущества (и ограничения). +# основные преимущества: +# - Интеграция с кодом +# - Простота vs. Гибкость +# - Социальные функции +# - Бесплатность и Open Source +# - Отсутствие сложной аналитики +# 3) Какие основные компоненты (поля) есть у каждого Issue? +# - Основные поля Title (Название) и Description (Описание) +# +# ## Создание Issues +# 1) Как создать новое Issue в репозитории? +# - Откройте вкладку Issues +# - Заполните основные поля Title и Description +# - Добавьте метки,выберете категорию Labels,назначить +# задачу определенному юзеру Assignees, выбрать +# время Milestone. +# - Свяжите с проектом +# - Отправьте Issue нажав Submit new issue +# 2) Какие данные рекомендуется указывать в описании Issue для лучшего понимания задачи? +# Для багов: +# - Краткое описание +# - Шаги воспроизведения +# - Ожидаемый результат +# - Фактический результат +# Для новых функций: +# - Описание идеи +# - Предлагаемое решение +# - Альтернативы +# Для задач: +# - Цель +# - Критерии выполнения +# 3) Какие теги (labels) можно добавить к Issue? Какие из них стандартные? +# - bug (ошибка или баг), documentation (документация), help wanted +# (требуется помощь), invalid (некорректный ишьюс), wontfix (работа над ишьюсом +# приостановлена), good first issue (ишьюс, подходящий для новичков), +# enhancement (улучшение, новая фича) +# 4) Как прикрепить Assignees (ответственных) к Issue? +# -В разделе issues ищем наш issue нажимаем и на поле assignees указываем +# ответственного. +# +# ## Работа с Issues +# 1) Как использовать Labels для классификации задач? +# - В Issue справа нажмите Labels -> выберите или создайте новую. +# Используются в зависимости от задачи. +# 2) Для чего нужен Milestone, и как связать его с Issue? +# - Milestone помогает организовать задачи в рамках этапа, +# контролировать сроки и прогресс. +# - можно связать при создании/редактировании Issue +# в правой колонке выберите Milestone -> нужная веха, либо +# через коментарии в Issue +# +# 3) Как привязать Issue к пул-реквесту (Pull Request)? +# - Необходимо в описании пул реквеста написать closes и выбрать номер +# в скобках (#) репозитория. +# 4) Как добавить комментарий к существующему Issue? +# - В самом низу страницы задачи вы увидите поле для ввода текста +# с надписью "Write a comment", просто пишем туда +# ## Закрытие и завершение Issues +# 1) Как закрыть Issue вручную? +# - Заходим на нужный issue, нажимаем close issue +# 2) Можно ли автоматически закрыть Issue с помощью сообщения в коммите или пул-реквесте? Как это сделать? +# - Да, в коммите в тайтле пишем (номер или ссылка на ишьюс), в теле +# коммита пишем ключевое слово closes (номер или ссылка на ишьюс), в пул +# реквесте в описании пишем closes (номер или ссылка на ишьюс) +# 3) Как повторно открыть закрытое Issue, если работа ещё не завершена? +# - В репозитории заходим в раздел issues, closed, выбираем нужный issue и нажимаем reopen issue +# ## Фильтрация и поиск +# 1) Как найти все открытые или закрытые Issues в репозитории? +# - В репозитории заходим в раздел issues, выбираем openили closed. +# По умолчанию обычно стоит open. +# - в поиске написать is:issue state:open либо is:issue state:closed +# 2) Как использовать фильтры для поиска Issues по меткам, исполнителям или другим критериям? +# - Во вкладке issues в панели фильтрами , или поиск по ключам +# 3) Как сортировать Issues по приоритету, дате создания или другим параметрам? +# - Во вкладке issues используем панель фильтров, для приоритета +# используем milestones, для даты создания и других параметров самая правая +# кнопка в панели newest +# ## Интеграции и автоматизация +# 1) Как настроить автоматические уведомления о новых или изменённых Issues? +# - C помощью subscribe зайдя в конкретный issue +# 2) Что такое Projects в контексте GitHub, и как связать их с Issues? +# - Projects - это инструмент для управления задачами, отслеживания работы +# issues и Pull requests. +# - Связать issue с project можно открыв issue, впанели справа нажать projects и выбрать нужный. +# 3) Какие сторонние инструменты можно использовать для автоматизации работы с Issues (например, боты, Webhooks)? +# - Probot, Github Actions, Telegram через Webhooks, автосвязывание карточек Jira и GitHub Integration +# ## Коллаборация +# 1) Как упомянуть другого пользователя в комментарии к Issue? +# - @имя_пользователя +# 2) Как запросить дополнительные данные или уточнения у автора Issue? +# - Открываем файл, по которому нам нужно уточнить данные,с помощью shift выделяем +# область кода, которая нас интересует,нажимаем copy permalink, создаем issue, +# вставляем эту ссылку на код в описании, пишеминформативный тайтл что мы хотим +# уточнить и в каком файле. +# 3) Что делать, если Issue неактуально или его нужно объединить с другим? +# - ставим метку duplicate, оставляем в описании ссылку на актуальный issue +# и закрываем его. В основнном Issue указываем ссылку на дубликат. +# - если неактуален тогда ставим метку wontfix и закрываем.Прописываем причину +# коментариях +# ## Практические аспекты +# 1) Как использовать шаблоны для создания Issues? +# - нажимаем на new issue, из появившегося списка шаблонов выбираем нужный. +# 2) Что такое Linked Issues, и как создать связь между задачами? +# - Linked Issues - Э механизм в GitHub который задает отношения между +# issues, Pull requests. +# - Чтобы создать связь, заходим на issue и выбираем тип связи. +# 3) Какие метрики (например, время выполнения) можно отслеживать с помощью Issues? +# - время от создания до закрытия,прогресс,статус выполнения,распределения по меткам. +# 4) Какие best practices рекомендуются при работе с Issues в команде? +# - Единый стандарт оформления +# - Гибкая система меток +# - Работа с вехами (Milestones) +# - Живые обсуждения +# - Связь Issues и кода +# - Регулярный аудит +# - Интеграция с workflow +# Пример workflow: +# - Создание Issue с шаблоном -> назначение меток -> привязка к Milestone -> +# обсуждение в комментариях -> закрытие через PR с ссылкой на коммит diff --git a/python/made-easy/introduction_to_data_science_and_programming_basics.ipynb b/python/made-easy/introduction_to_data_science_and_programming_basics.ipynb new file mode 100644 index 00000000..552c3fdd --- /dev/null +++ b/python/made-easy/introduction_to_data_science_and_programming_basics.ipynb @@ -0,0 +1,533 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "id": "3a76327c", + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"Введение в Data Science.\"\"\"" + ] + }, + { + "attachments": { + "image.png": { + "image/png": "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" + } + }, + "cell_type": "markdown", + "id": "96cb6aa8", + "metadata": {}, + "source": [ + "## Введение в Data Science\n", + "- Data Science - это наука об изучении данных для того, чтобы данные\n", + "обрели смысл и дали нам полезную информацию.\n", + "- Data Science - это научная дисциплина, которая включает в себя извлечение информации\n", + "из огромных объемов данных с использованием различных научных\n", + "методов, алгоритмов и процессов. Эта наука помогает обнаруживать в необработанных\n", + "данных скрытые закономерности.\n", + "- Data Science - это междисциплинарная область, которая помогает нам извлекать\n", + "знания из структурированных или неструктурированных данных\n", + "![image.png](attachment:image.png)\n" + ] + }, + { + "cell_type": "markdown", + "id": "a2c55da6", + "metadata": {}, + "source": [ + "## Зачем нам Data Science?\n", + "Эта наука помогает нам:\n", + "- задавать правильные вопросы;\n", + "- находить основную причину проблемы;\n", + "- находить закономерности среди, на первый взгляд, хаотичных необработанных данных;\n", + "- создавать модели для предиктивного анализа;\n", + "- визуализировать и отображать результаты с помощью графиков, информационных панелей и т. д.;\n", + "- наделять машины интеллектом;\n", + "- определять лояльность клиентов с помощью анализа настроений;\n", + "- принимать более качественные и быстрые решения;\n", + "- рекомендовать правильный продукт нужному клиенту для развития нашего бизнеса." + ] + }, + { + "cell_type": "markdown", + "id": "3a1130e0", + "metadata": {}, + "source": [ + "## История Data Science\n", + "\n", + "### Данные в древности\n", + "- Около 18 ООО г. до н.э.(ранний способ хранения и анализа данных человеком датируется 18 ООО г.Палеолитические племена делали зарубки на палках или костях, чтобы вести торговую деятельность или подсчитывать припасы. Они сравнивали палки и насечки,выполняя тем самым элементарные расчеты, что позволяло предугадывать, например, на сколько хватит их запасов еды.)\n", + "- Около 2400 г. до н. э.(Счеты - первое устройство, сконструированное специально для выполнения вычислений, впервые стали использоваться в Вавилоне. Примерно в это же время появились первые библиотеки - ранние попытки массового хранения данных.)\n", + "### Появление статистики\n", + "- 1663 год (В Лондоне ученый Джон Граунт проводит первый зарегистрированный эксперимент\n", + "по статистическому анализу данных)\n", + "- 1865 год(Ричард Миллар Девенс в своей «Энциклопедии описал как банкир Генри Фернезе добился преимущества перед конкурентами, собирая, анализируя и структурируя информацию.Считаетсяпервым исследованием, в котором анализ данных стал использоваться бизнесом\n", + "в коммерческих целях.)\n", + "- 1880 год (При возникновении проблемы переписи населения наняли инженера, который создал нечто, что позже будут называть Табулирующей машиной Холлерита. С помощью перфокарт он сократил 1О лет обработки данных до трех месяцев и занял свое место в историикак отец-основатель современных автоматизированных вычислений. Основанная им компания впоследствии станет называться IВМ.)\n", + "### Зарождение современного хранения данных\n", + "- 1926 год (В интервью Никола Тесла заявил что при развитии беспроводных технологий планету можно превлатить в огромный мозг с помощью приборов которые будут удивительно просты но при этом будут умешяться в карманах.)\n", + "- 1928 год(Фриц Пфлеумер, немецко-австрийский инженер, изобретает метод магнитного хранения информации на ленте.)\n", + "### Появление больших центров обработки данных\n", + "- 1965 год(Правительство США планирует создать первый в мире центр обработки данных, в котором будут храниться 742 миллиона налоговых деклараций и 175 миллионов комплектов отпечатков пальцев на магнитной ленте.)\n", + "### Появление Интернета\n", + "- 1991 год(Ученый-компьютерщик Тим Бернерс-Ли объявил о рождении того, что позже станет называться Интернетом, каким мы знаем его сегодня.)\n", + "- 1997 год(Появился сервис Google Search, и в течение следующих 20 лет название сервиса стало нарицательным, означающим поиск данных в Интернете.)\n", + "- 2000 год(бьш выпущен язык Python 2.0 с множеством новых функций, включая сборщик мусора с обнаружением циклических ссылок и поддержку Unicode.)\n", + "- 2010 год(Эрик Шмидт, главный исполнительный директор Google, отметил на конференции, что сегодня каждые 2 дня создается столько же данных, сколько было создано человечеством с начала цивилизации до 2003 г.)\n", + "- 2011 год(В отчете McKinsey говорится, что к 2018 г. США столкнется с нехваткой от 140 ООО до 190 ООО профессиональных специалистов по обработке данных, а такие проблемы, как конфиденциальность, безопасность и интеллектуальная собственность, должны быть решены до того, как большие данные раскроют весь свой потенциал.)\n", + "- 2012 год(публикация статьи «Специалист по обработке данных:самая сексуальная работа XXI века» в журнале Harvard Business Review.)\n", + "- 2014 год(Наблюдается рост мобильных устройств - для доступа к цифровым данным мобильныеустройства используются чаще, чем офисные и домашние компьютеры.88 % руководителей предприятий, опрошенных GE совместно с Accenture, считают,что аналитика больших данных является основным приоритетом для их бизнеса.)\n", + "\n", + "\n" + ] + }, + { + "attachments": { + "image.png": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkwAAAFrCAYAAAAjJdbQAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAP+lSURBVHhe7P0HtGfHdR74VufcjdTIjRyJDJIACBJMYKbEYEmWZEljehQ8a0aSPfPGM3rrzVrSjO01y7Js5WiJVjAlkmJOIEESJBGInHNq5NRooCM6h7d/+9zdfXjdQAMkMuprFM45FXbtCrf296+qU2fKtm3btreOjo6Ojo6Ojo6nxdSJa0dHR0dHR0dHx9OgE6aOjo6Ojo6Ojt2gE6aOjo6Ojo6Ojt2gE6aOjo6Ojo6Ojt2gE6aOjo6Ojo6Ojt2gE6aOjo6Ojo6Ojt2gE6aOjo6Ojo6Ojt2gE6aOjo6Ojo6Ojt2gE6aOjo6Ojo6Ojt2gE6aOjo6Ojo6Ojt2gE6aOjo6Ojo6Ojt2gE6aOjo6Ojo6Ojt2gE6aOjo6Ojo6Ojt2gE6aOjo6Ojo6Ojt2gE6aOjo6Ojo6Ojt2gE6aOjo6Ojo6Ojt2gE6aOjo6Ojo6Ojt2gE6aOjo6Ojo6Ojt2gE6aOjo6Ojo6Ojt2gE6aOjo6Ojo6Ojt2gE6aOjo6Ojo6Ojt2gE6aOjo6Ojo6Ojt2gE6aOjo6Ojo6Ojt2gE6aOjo6Ojo6Ojt2gE6aOjo6Ojo6Ojt2gE6aOjo6Ojo6Ojt2gE6aOjo6Ojo6Ojt2gE6aOjo6Ojo6Ojt2gE6aOjo6Ojo6Ojt1gyrZt27ZP3Hd0dLxKsH379nQ/DKZMmZKuo6Ojo2Mn+gxTR0fHD+CHJVodHR0dr2Z0wtTR0dHR0dHRsRt0wtTR0dHR0dHRsRt0wtTR0dHR0dHRsRt0wtTR0dHR0dHRsRt0wtTR0dHR0dHRsRv0YwU6Ol4gjN8227x5c5s2bVqbOnVqW7VqVYatXr26PfbYY+2OO+5oTz75ZIu/xYw7d+7cdsghh7SDDjqoLV68OP333nvvHa/7l5yS70r+pk2b2owZM9rMmTMzHv+KMz4moO4rvGRxwjw/EyruOE3lt379+tRjy5YtWc5ly5a1devWtaVLl7ZZs2ZlGBxzzDFt/vz5bcmSJVneefPm7ZABJXPs19HR0fFSos8wdXR0dHR0dHTsBn2GqaPjeUbNupgZqtkbMy733ntv27hxY7vmmmvaww8/nLNCZo6OP/74nEnaa6+92pw5c3LGBcwUbd26dYes6dOn75BZfq4gnjyEmWUqf3nXDM14JmkMccvf/TPNMI3jcqULeAa6VFjlqazLly9vTzzxRFuxYkW78cYb8yp80aJF7ayzzsq0Rx99dFuwYEHeV3nGeXR0dHS8VOiEqaPjeQaCgMzAI4880h566KG2Zs2adu2116Y/UnTggQe2k08+OcmAZSlkqMgKwlFX5Keei5AUilAUmag8+cFkclOEixM2dvzEcV/pdwXhUDIr/div7sm0fCh8HJ/eliARJsTx/vvvb2vXrs1yIolvectb2j777NP222+/TF/6dnR0dLyU6ISpo2M3KEM/RhGAChtfATlCAi6++OI0+GZRjj322Lbvvvu2173udRkHMSnCIx1ygEwUyYDJ+RYqn3H4eGYH3Fc84D/2k3acf/lX+h8GdCidKr8xxnm5t6fJ7NODDz6YxNIMFJKpzk499dSsr/333z9n34qAFYGarG89V/4dHR0dzyc6YeroeBpMNu5liIuYAANecWxwvvXWWzP8oosuarNnz25vetOb2oYNG3LZzfIbv3GakuseEShS8HSkpXSASsfBWOb4Gcbpxn7ci0U4Sv7TAXEyC4Zs2hB/8803J4G0Wfw973lPEiezc+qHP1QZXiidOzo6OgqdMHV0PA0Y4SId7hEh5GJ8b6nN7Ii33W655Zbco3TEEUe0I488MgkSJz2jX3LGcrmS6Z7cypsbY7JfpeEK7sf+FbYrAlay6lpxx3m8WCi9EaHS32zT3Xffnct0N910U/pbvjz44IPz3uyT/U6T9Z383NHR0fF8oBOmjo6nQRnuMuZ1tdT2wAMP7FhyMzNiz8373//+nCHZY489cqZovGeoNmKTASUXisyI594VxB/D85j4lLySI517/pPD6FIoPyh547iT832+8Exyq8yFsS7CzNI99dRT7c4772xXXXVVPh966KE5g+d4goULFyaxEveF0r+jo+O1jU6YOjomMJlkML5jQoEY2axsyeiKK67IpSFLbSeddFISJk6cmn1iwKUjhwNpoPzkicyIJ12FF0of8Uq/gjz4kTN5ZmocD8ZEC8SZjEqzq7AXAuN8Juu7KygnomRGj7Np3H4nhOkNb3hDzuqpP/VZsutaddjR0dHxw6ITpo6OCTCoDOuuyIY9Nd/85jfb448/3lauXJmzGw6X9Kab5bYy0tIy7EVmSl7JLL8y3q51X3HGqLQVh+xC5bkrwjQZk/12FWes44uBcT67KvsYVQecslq6c/3+97+fJNaMn6VQy3XaxSZx9VP1UoTxxSpbR0fHqw+dMHV0TIAxLYICiAhyZF/S5z//+fQ3m/He9743l90QpTHKKEtnpqNkcWWo67kIFYjvflfGXFilL/lj8BdnV4RpV/IKuwqTDzxTuucT43wq72dC1UOV1bN61j733XdfbrQ3w+eNxPe97315FV+9VdqOjo6OHxadMHW8ZjE2omPS4t7r7vbKOCOI3wEHHJDHAthk7GDJijeZxPAnt4w0VLzKYwx+CIBwxn9yOBlPZ+z5cWRwhfIfpyldCuOwQsXZVRg8nR4vBMwg1VIlNyY9Yz3H5bbHyUZxxxNcffXVOz4xc8YZZyR5qvRVhnru6OjoeDbohKnjNQsGkyvCAk6jtkfJrIX9Mt7EOuWUU9qee+6Z4YVdGdoy5FAEiavZpl1BuDDxxzKfrSEXr2RMTjN+npz/s5UP4kq/qzxeCFR9qP+axSu/yeXYFZCt2267LQkvAkXGRz7ykSS9SFjVF2gbeDZyf1g8U529kPl2dHQ8v+iEqeM1jTJYjCgDe8EFF6QRtYH7Ax/4QJ77YxmuDOvuYAnPWUveiisDz/E3y7ErOUVIxng2xGRMZLjJaZ6NjGeDcT71DLvK8/kAud5AVI/kaxszfj7QC8+U51hHm8LNOt1www3tnnvuaYcddljuczJTKN64LcSvtM83no2+HR0dL39M+83f/M3fmrjv6HhNgSFGamzk9n03m7rNJJ155pntHe94R76qXgclAsNXbjLIMpvx8Y9/PGWazZCOQfRG3V/8xV/kzIev9I8hnJNmLPeZjGxBnDK4u4o/WV6554pxmrGuyvzDyHs2MEOEvNorZv+YNw59TubZ5kdPS3KWUJ3dhDhdf/31uTkcmT3ooIN2nPmkPC9kWV4ouR0dHS8u/vtdpB0dryIUoWAQuYJlOO72229v3/rWt5LUmFH66Ec/2k477bScVaq30MxuAFnlxs8pd8r2tmbNqiBeV7e7774z0vHf2jZuXN/O//p57corLm/LHnu0bd8aRrpFWFzb9kgXbtuWzXHZms6z8LwnN7LatmVik3M+S7utbd08pE9ZkZ48aVz5yX97hG/f7lTy4bptW8Rp6sEbZsN9hk1c6TvEL6e+7LEK+dKmDH5Dfaob1x114jpRhrrG//K6dfOmwS+ed4SFvB1xUocJHeM6c+b0dtlll7bf+q3fjLa5fMfsUtX9riCsyAkSVEB63/a2t7UPf/jD7Y1vfGOS4+9973tJnsQfy6z7Z8rnRwG5Y9fR0fHKQV+S63jVg2FiGBGkMpCM5Xe+850kQxyyZMlGeLndYWz4pkzd1m666eb2b/+f/6d98Mc+2H7+538+uMD29pWvfqV9/C/+sq1Zu6Z9+EMfar/+r/51GvPHly3L/VIIx1FHHdWmz5jRVq5Y0eYGMeCeWrs2iM/U9vDDj7QlhxzSZgR5mzptWtu0cVMQs9Vtz732jrSb8pX6NatXt7323rvNj3RTp9k8Pr09/sTy9tiyx9qsmbPaQQcflH4rVjw51EMQsNA6w+bMnTPs11q/oc2YOSMK1XJWxv0w87I9iN5juaRotme//Q7Msq9bty73GPGrmbRHH3m4LV68T5CjzW1j1KkZOvmtX78+j2WwzLnuqaeyHRZE2HTpopqnTJnaNm7e2JY/vjyPA5gydUrUz+P5xpuZIb/r9t57n9xPRt6YDAG/aod63hWEa+tVq1a1r371q+3RRx/N7/qdc845O/aoaY8qz9PJea4YyykdOzo6XnnoS3Idr3rUkksSlccfT7JkmcdZSgym5bcyxmXcKv6zRdj4NO5I2KGHHdre8Po3tLvuvqv9u3/370w+BTmYHsTo6JzhuPKKK9of/MEftK997Wvt61//eu7VOeDAA9p/+k//KUnEvvsubn/6J3/aLrvssvaNr38jNy0fcfgRbUqQoWuvubr99V//dTvyyCPaPffc3f4w5Hzxi19oV155ZRp931tbESTqD//4j9rnv/CF9t3Q59FHHs0v//+H//Db7dvf/nb79gUXtIsvurh978IL29w5c5M8fPrTn25f+cpX2oUXXdgeevihdvTRx7RpU6e1737vu5nf17/x9dD7ynbQQUtS1ne/+9323/7bf8vZOLM/Zm3+8i//oh0edXrjjTfkK/6nnHpqko9bb7ml/ecom0M+zeZ9L2SedvrpbebsWUEKB7Jzz333hn7/IQnY+iBif/7nf97OOuusJJP33HNvPp9wwgk7jgoYY3fPk2Gp7sQTT0zCZ4bxjjvuSKKG4I3PttqdnGeL50tOR0fHS4u+JNfxqkfNLHndHDn47Gc/204Pg21WyRtwlt+El4PnQpaA0d+8aVNuVpbW/hikZMuWrfnJlBkzpqcxfmL58tzPJJ9zzz23Hf+645O83XLzLbnHxgdnb7/t9iAdN4ZuJ7dFeywMQvT5tmLl8shka7vqqiva+vVP5fIfwoIAfuADH2x77blX+9znPpcnYP/DP/xDfoPt53/+5/IE7AuDvFx33XXtnHPe0vbZZ+92X5ATZPE973l3boK+5dZbcsbnTWe/Kb99950LvtOWLr273RS6fO6zn2uLFy9uH/vnH8vZqy996QtBDNe0jZvWt9tuuyXKbXlvU3vkkQeDiN6fM15Ll96TesHWqAczRfQxo3bTzTcFUdmoxsINdW2p0bf47g29zPqYAXKCt/rauGljuzCInWMCfNz4R0HNHmkfsi3TOa8J4UNeL7/88tRDvD4T1NHRMRmdMHW8qsDY1bWMHnLCYH/iE5/IAw7NdCArjGeFj8nS+P6ZIA7jS45lpDKxZi4s/SA/ZwcJkdfCRYuCPG3OGY0HH3qw/fRP/3T7xV/6pfYv/+W/bMccc3SSOvquW/dUGm6zKe94x9uDNJ0UBOSudscdt4fM9W3lyifbWW86M0mTsvzUT/1U++mf+ekJUjaj3XXXXXn69TlveUt733vf1z704Q+1U089pc2aPSv3Z/34j/14ziq9P8ji+9/3/twQPW/e/NTnl37xl5IY7bHnHrk8dnEQLcTnPe99bzv99ae3D3/owyH74nbPvUvbxg3r2/QZ09r6uG7bHkRk+tSoC/UWJGnb1izHpo0bd9SjsiEpKskS4No1a9uWzZuynRCxrPP4J0w9+aixGTsf3VV24TX7Q9ZY7ridy39XyHaaiKPd7G3yxtw//af/ND9v4zgJe5uKrFUfQn4rjx8GpeOPIqOjo+OlRydMHa8qMIYMXRlORARxMevCCCJLZhWgDGe5HwWM/ewgJd7mQpiuuvqqdt/997Vf/B9/MfcEzZ41u82IMLMs++27Xzv88MNzfuXQQw9rv/prv9YOP+KI1OG6665PwmPmCwE67fRTg+zMbFdccVnOTt155x1Bpo5vjy17NJfyXv/617eZM2bm23e/8Ru/kctK5BxxxJG558nber/yK7/S3v3u9+QS26YgKZb4OPWBrNgAfkWQtC99+cvt/PPPzxme2XNmt7uX3p0E5qorr2x/89d/k8tsW7dtaTfeeH1e161b277xjfPapz/9yfalL30x9ypNjTzk88ADD+Zy4xe+8IUsj3ztm0JaLN9ZfvvDP/jD9qUvfiHyW902b9qcustvzuw5ufTmrcPPfuaz7ckVK7IOn2/CQR591MVb3/rWXKZbunRp+8d//Md8Sw/UZfWljo6O1zY6Yep41YEhRJQsBVnKufjii/OogA996EP5ppQlOKjZqOcDZDH6WyLfFU+uSIJxwP4H5H4fRhcZEG7JDnlghOlpVmaffRbnjA0ZNkdbOkS8zFotDKJgT5Ny3HLrzUFypoXMfXPzNHKhjOLVWVHkklFf7p8/b34StOGNN0tkW3NGyBtxYGP6sDn9q+2Tn/yH9tnPfTaXvpC+NavX5H6i7134vTyjyibyo446Mk/PtsRo8/kFF3y7nXfe19r9D9yfs2r2USF69ol95StfDhL2pfaN87+RhNI+LpvFLbPR3WzYJz/5qSBcn0r/zVs2J3nZEgRudcj+zne/066+5up2xhvfmMtmVWfPF8jTT+r+zW9+cxJQ9fflII/Ob6Kneu3o6OjohKnjVYEyfEiCJZR77703idKll16aM0pmEHzN3qzM2OiKX+65oGS4DuktubQkDZdc8v123333t5/8yZ9qM2fNblsjbOWq1Xm1V8gba+s3bGzbg0Rs2bKtfeITf98eX/5EEKkt7djjjm9vOeet7Vvf/nYY6yAge+/dzgndlz/5ZPv4x/9r2yfI05w5c9u06dMzPv9gTO3Ou+5uv/0ff6fddvsdbZ/F++ay2NTwfyLC/9snPtH+4e8/GXl5bX97kKwtoTnyoQSWuma0f/2v/3X7T7/zn9t/DBkHHXhwELRr2pIlh7Sjjzq6/dZv/d/td3/v99r/+X/8RvuxH/uxdtyxxyaJsEH7V3/1VzPNRz/y0SRiSNXMWTPbCSee0P5//9f/1f7j7/xO+7Vf+7VcEtyybUubOm1Khv0fv/F/tP/7//mtdtrrT4uyfjMI0qo8EmHe/LlB9ma0mUHIrr/+uvauc9/ZPvDBDySRQmo4eL6IUy4TTkCZ3v72t7ePfexjuUR3ySWX5CyZGTeoPlJ9jQ7lOjo6Xv3ohKnjJUMZwDKCzwXjtAwWY2c2wN4Xm7pt7mboLEdZ/qpTo5/J7Q5PF5chnTrVnhdvw81sq1evbR/96E+0N77xzLCqU9rWsKdPrd/QpnhT7pjj2pMrV7fPfv4L7c67l7avfO289ol/+GRbu25Dxjv8yKPax/7HX2zLlj/Zrr3hxuBC09vprz8jyMiUdu/9D7ajjj6uTZ85u5106mlxndU++al/bBdfcmn767/9u3b1tde1/Q44sB197HHtvPPOb7fddkf7wue/1D7x3/6hLVu2PPS24Xl66jileXXekiTCMLVt3rS1LY8816x+qm3YsKnNnjW3nXvuu9s999zXLv2+M6SWt29964L2X/7Lx9uqKN/cOQvals3b22GHHdn23//Ats/e3jKc2mbOmd02bN7cFu25Z1ty2GFt7332aQctWdJmzZ3TNmxaH9dZEb6+3XbHLW3pfUvbw48+1A457JCQsW9UsL1J9gxtCgK1Ms9i+rmf+2dt//32y1mr2ks0rv9n0267w7hd5WNf1zvf+c6cjTTb9Ld/+7f5TUFEqfpaxe/o6HjtoBOmjlcFGDMG9ZOf/GS+Js6onX322bk0NZ4R+FEgfbnJQJrkyVmyes973pMkDSwnlR6MsdflnSr+u7/7u7lfxt4Zr7WLpwz2HVnaOu9rX8t9PE6ltkfJLI29TQy1t9ksMfrkx5/+6Z/mpvb3vve9uaREvs3a5H/xi19MfbwRaGkQqaSHpTzlcPX8d3/3d+13fud32u/93u/lsqHN0I5c8Jadt/gceeDk7XPeck4uNdoobtO05bwtm7ckOTV7ZTlycZCkPfbYM/0LW7eanZmSs1t337W0/dmf/UXI/M+51wk5WbhwUeg3LQnKE088GXpuziMLzMjZv1TnJL2QUB9FhLSXk8XVm7cEEfBbb701609bV9y+x6mj47WDfg5Tx0uGH8XQjNMyXrlB+LOfzRmmgw8+OA0d4jEmS+Pll+cK6SejdCjjaR8R4+519ZNPPnmHv6vlKwSATpYGHeKIJHmt/2d+5meSFHlGjPgx0osWLWyHHnpIEqUbrr+hrVyxsv3ET/xE5mPZa8mSQ/N4ALMiSMe73/3uDEPKEAybsBEfb9LJk3EXlw7ewkN41Ik6El+64447LomXwxxtvCYfCSQXEfvIRz4a9wtyiczeq2Mj/ty584Iczgndj41ynxK679sOiXQHHOCQyymRfnrGPenkE3NPF/8DDzwo6+Pcd57b3nz2W5Is2pt1yimnJlE5+OAl+RbfnkG8pkb6/fc7IOumSOgLjVp+c2aTOrAZ/M4770wipe206+T27+joeHWjn/Td8YoEA8XQIwH2DTlHxyZib8E5HBIBQAbEK4PGCIpf4A9jY1d+z8YIluyKWzM3CIa8+ZfhpSNjK39+ZpJKPhIjrfjSVhzBzjx69LHH2p/+yZ/k4Zr/6l/9qyQrkWvbvGmQPc7TPZRM+SIZVRfyFcezOFBpqj7Jd08HOpNRZZXGvTBxyAFhwE8c4XTyDPKdMdP5VPZWDUcEbNi4ITeC27Ruv5U4/KWturAvavs2S2UzM5x/5fl8g+wqG6iL8nv44YdzlsmJ5wgtUmyWT5gy0rVQdSGso6Pj1YNOmDpecWCQyqh5G8shj5aRLEc56dobaWV0xwQJxkZsbNg4z2P3TGknQ3x5lqzyK8egVh5Q+tezMIa3jC/S4c22z33+s+3Tn/pURGjt3/zv/ybLiDgMRGKYMQJ+9C2CUv6FygdKT/FLX+lKzyIK4zQVj3smWHqbNm2oN8mrnIPMgZCFkAysPDj+GRbwLJ8KG/Lc+VzxXkwoh0M5nb7uvCazgT/+4z+eM4Og3ug2RtXXZP+Ojo5XJjph6njFoQwnsuScH0s4b3rTm3IZK2dfImzyr/7C2OCXIRsbtrGbbJjHaSdD/CIiJavAvwiT+3LAr8KQHs6zWZQpkb3Pn3z/ku/nJ0JOPOnENm/u8Hp9nmsUhMn92BVhKt1d+cuvdOT4VxgIKxn8PVd8qPj58bdngDcBp00tmVF2/wuYVdq2fSibPEp+uR3yA57HcaCe6/6lQNWtU9Pt5zL75tBLS5x0El51B/zGend0dLyy0QlTxysSjg3w7TMbmm1OtkenDCkDNb4fo/xhV4Zt7MqAF8ZpJ0N85EKcSlfkBCYThTERGUMYDHGRnIH4lWwzS5axnFm0betAhMjgMnxC7njZqvIVxqi7kllphNV9ucl68ktdnzNhytv81l6MNimnUHlU/il/wn+sA4zTvRSYrIfP2PhuoOVOe77s/1KnY4hb5ejo6HjloxOmjpc9GG1Gh0F1dVr2xz/+8XbGGWe0U089NTdUM0xlcMd4rsaq8ipjN8bk56dD5UlWLZUVQZmsD0IUtGTifiLd1mHvkGc+24Lk2OfjoXQQRnZ4+C9P1878tkZ+U4Z9SBkQ8epMJvERLsh9RpbPpk/LN92ATDpWHuKG9JDjv8EvctpBoqB0HutV5eTnWvflX8+V5pUIdeCcJm872rDuJQMb/dVxEdwx0e3o6Hjl47+3MB0dLzMU4WB8vNbtbThEyZtcRZagjPHYvdyhbDZCIyRJKIK8+FwJRAmaz5YM5YsYSNPI+CI96iXJmO+xRbg30qbPGDacb/attiA9yBQZ4svDbyQEKus0SJNZJ/HVb9WZaxEs/nmduCcjdY04ZMCYFBRJLLLgHuoZpK28XolQJkcuOEFemRxw6WiHKuvka0dHxysffYap42WPMtI+iupMoKOPPjpP7k6iEP5llHZlgMeG/NlAXuRINznts5VVepBV5KF0/e919DwQEcts4iE9PkCbMz+RpXQ+VeKjuUiRz5sgjkmsIorPsWzetImCMs/ZJc7bbzbD+6bcjOnTcyZEGRAkb6j5Bh358ibH8hJZ8pNW3Nx7FOGW+Oi2deuwP2ztU09lmOMGxC/SZWZMfM9OI6eXs5csL86cOSvjVt26r+ddtd3LGdVHHN1gediLB48++mj74Ac/2A477LCsK1AXytjR0fHKRydMHS9rMDgME8P/93//9/lW0jve8Y6cLallK+GwK6NbYc8WZIxljvFsZZUervSHIgaFnbpaMtvcvvvd77Wbbrqx/bN/9nNt38WL84O1vpz/cz//8+3JJ4czpn7ll3+lHXTwQe3WW27NYxS82u5ba155R6IYafmZ+VBHX/zSF9tFF16Ubw0eeNCBKfuA/ffPAxg/+alP5mGTiJXZpr323qv99D/96Two8m/+5m/asmWPUS2Jjzhm8976tre2S79/aX6EF3ndY8892i/8wi+04449rl3y/Usy7Kd/+p8G6drWPvkP/9DmzpvbHl/2eJC7DVF25GhGvsXoLClnG6mDVyqZqParNkWWzDL5Dt/PR5t5EWEcZ3L8jo6OVx76T5+Oly0YGTM09913X/uHMMDehPNdOAa8NjWPDZD7ye65QprJ5Oa5ovImJ992G8ka3yufJTdxHnrowTyc0oyFpa/zzz+/XXTxRW3N6tVtw/oN7bZbb8szgKTxoVpf/F/71NpcykOWvLn15Ionk8TMmz8/idQ3z/9mEixk6Nvf+nb7Rhh0e5wQrCuuuCJnrZAlr8sjaGadzAQhVA8++GDOZj0VeV13/fXt3vvubffec2/7kz/947Z06V3t5JNPDL3Wtc997rNt85ZNbUWQuosvCX3XrmkXfu877ZFHHw5SOz3LIvz6G65L0ut1fIdBKscreeal2rjgTCbLxPy+9KUvZR0jr0WYizB1dHS8ctEJU8fLEgwNI7NixYrc4O105Tqtupa3JhutVyKUA+Fxfeqpp3JGZ9ljy/Lr/5bkLL056XvV6lVJcDLNtGEJzEndP/OzP9N+9p/9bO5bevOb39J+8Rd/KcjMSTnb4YDFX/7lX24f+9i/aOe+69wkWfYzzZk7nPDthPFf/1f/qv3kT/5k+tdeJyTVZ2X+9//9f2//07/8l22PPRalLmaVNm3amHn+84/98/axf/Gxduedd6RDjDQFwnVHPH/oQz8Wef9S+zf/5v/T/vk//+dt9uyZmZ8P2yJNr2SyNBn6qRlPp6cj9drpvPPO20FwofprR0fHKxedMHW8LMHA1Anep59+eu5Zssdm/Ev91fCrnRH1Fpv9RPYNmVH69Kc/3dY9tS5nkhhfhGrG9Bk5a3TllVe1Ky6/oq3fsD79Fy5Y2Pbea+9cdps1a2Yabt9wM0OEgNmIfN1114as9W3lqlU5mzRn9pw2e9bs3DC/3777Btmakec6qfONG53vtC0/SbJg/oIkN7NmzkpZiND06dPifm277PJLc6lwW+i+dOndURLLj1vb5ZdfFnKmtNNff3rkMavtuecebcGC+dl2SC8iPOyFGs40ejVAG+qLyuVgUXvsLM3VyeDKLE4nTB0dr2x0wtTxskAtX9TMko+w+pCuZ98wq1mJmpkQp+K/3EC3sZs8u1D3/CM4yNLstn79xiArm9vNN9/aLrvsijC8b8wP0tpUjRyZaUIe/+7v/rZ97byvtc2bNudME/nk2YrIz/PGTWRtzCWwL3/py+2CC74ThOmp/K6c+loT/puCnCFhNn3PCTJjQzh5Zq3MaM2YOSPJF1nr1q/PWacnlj+RM0z2MJ33tfPaF77w+dQP4SN3xYpV7Xvfu6TNm7uo7blocdu2fWqbNnVWhJlFGzabD7oOpOnVhGpT9We/lz5rX5NjB7SDdlF+146OjlcmOmHqeNmA0eF8SNeSEoNjY7MPtlbYmHzU9YVC5Vnuh8WuZNSzL/QjO77+vykIz8UXX5IfsT377DfnDBPiYvYJwfif/uX/1P7dv/137Zd/6Zdzn5IDLMGbbWaANnpTrm3Pt+n223e/9s5z39n+7b/9t+3//q3far/yK7/S3vWuc5N4zp8/D0/KZTT1icAgRJbkpCfXLNUOhJFHnpykfvjhR7Tf+I3faP/+3//7kP3vc9P3qaeclrNHc+fMa+9/3wfbsmXL2w033BR5WOJzdEFrGzZsyhlDKNL7akOVC/nUb4s03XDDDVn2V2u5OzpeK+h/wR0vCyAPfoE7lNLnTmyadYK3t6l2hSIc3MsNY912p1+Fm4Uwq2Ypx8nRjCuSYpnOJveZs2bm6+qL9lg0EMhIg+SYsZgWccW3L8kmbrMciNGVV17ZHnr4oXwb7otf+GL73Gc/l/c2kOeeo/gnPVK2ft36nMl6au1TebyBWSZ5I1HeRvTGmw8a3xppvdHnqIBHH3m0/fVf/00u/61d81QSNyevWx70RqO8EAV6kaE8IM+X48zg84Xa6G8f2HHHHdeWLl3a7rnnnlfVMmRHx2sRnTB1vCxQsxwXX3xxkqWTTjqpvf3tb8+wycsYYzJShOPlhmerX5GHujKwiKI3yWYH8bGnCJGx6TqXvrZuSwL1Axvfp05psxyxEOnFmb9gQZ48/fBDD7ff//3fb7/7u7/bzv/m+e2YY45pX/7yl9un//HT7fDDDt+5pyhIEZkPPfRQ+8u//Mt255135Z6j3A+1dUvG8aYevfbaa5/2qU9+uv32b//H9gd/8Iehx4x21JFHt5WrVue+J2TNCey33HJLvnkHiIKlO0RCOUv3VyuqPZX3LW95S5JF5NXMaUdHxysX037zN3/ztybuOzpeUBTxYeTdl9FkYPjZoOx1erMU73nPe9qCMPw7SMFuiMdLjSobPBt9x+HuHSewZs2a9uEPf7gdfvjhuVnY5uk3vvENSTAcIeANrD0W7ZF5eWvu+OOPz3ONLN3Z0H3KKSfnN82cn1TLmDZqM9jHH3d8vk1nxolsX9pHzhAl+5TMcJH32LLHgvjs0d73/vdlXpbnxN//gP3bmWed2Q479LC2efPWtioIEkLwE//kJ9sJJ5yY+6G2BpnzeRA6KMuJJ56Y52bZuI4M0x8R096vZsI0bn/1i0Tedtttua/MLKHyg3Yc94OOjo6XN/rBlR0vGsaEiatnBsTbW5dddlkalp/7uZ9LIiCO2YkiTS9njAkTjPUdl3Uyiiy6Wo4zE4NUDHteGNyZSTacb+RtOPFI2rBhfYRPi7izMnzTxk1tVqSLjHKWSZ3xf+ihh/NttdlzZucyHWKEYLlHxOTtjTzLb96asxdKnMX7Ls7lPUDmxEW8fEuOXO1lBsoyXekvLXIgrjS1FCc+8FcPr2aytCuoG/36W9/6VhDgNyZx5Aevtbro6HgloxOmjhcNkwlTGn8GPkjRHXfc0a6++uqcWbK5mCERzsi+EvB0hKhQ+1eKpIwhLVIhTJl3GlFkarjL+toeRjayEafqr0iIq71Hw9tzlryCpMWfNtICKTNkRc3vqPf8/tzEPiauyGk8DRvAM+/hXKbpITOV2T6Q19IBUtaEzlXOlDPhX/mJ79m18notoMp/0003te9+97u53PzmN785CedrpQ46Ol4N6H+tHS8qysiWEWE4Haj4jW98I98sMrNUKGMi7isBysPRt8pXZSzneTL4ITZFKMrPG2bbEZSGNE6Nf4jQ9Ig7zPSUwZXOG3Lkm9FJchOxZ+S34oR7RnYQHbLVaXhFHJ8xcfWzKePLJ+L7lMn2behU5B7kaXukRdbkpWyug44/2J4cncZhnosojuO8VqDcnGMd7APT1/04qHriOjo6Xv7ohKnjRUUZ0TISN998c/vKV76Sr2AffPDB6QdlZOCVZFyVq8hDPXPKohxVpjHKv+JwCEaSnCBGzjPaFuTF1QwPN3XK9CEY4jozyNNAeELetCIo04I8zYh7ZGx4NqHsajkPgUoXApAkpGj45ptZKTox6EGYJmTUcDG5PUpn+o+J3+SyVhl3hQp7uvBnwo+S9sUAvZBZ+5kcamnvmE/TPP744zv6B7dlYumyo6Pj5YlXjiXqeFWgjAODbhnOW1s+eeLXdxm9WkZ6taDKxT13RH0FAfN2HBdPIQdJUZfDGUxmfmBaECVEpU4HV88121UQzh/418yX9vBMx7HhrvT8xLPXqeJx7uGHK9trB+odvNDgLUJHLjhuQL1WHb7a+n1Hx6sNnTB1vGgYG1Wbhn2N30ZhZy3lSdNhVMYG5NWCIhflnj0QmyBI8Vc6ddqUdJIjTcN+pu1tangUMXLYpGMAzGTYw+RTJVu2bm6bNm1oy5Y91h5//LG2Zs3q9sQTy9sjjzyUnzZZseLJtvapNW3durVx/0R+9mTlyhVBjDZlenn6Ppx8fRaFUddO8vPWVxGBImEd/z3qB4Ird9RRR+VMUx01UHWIkHZ0dLx80Td9d7xoKINhlsIG2M997nP51tC73vWuJEzIhPC6jvHciMazw3PJY3dxhVecyXEZRH5PJ58/AjI5nAEdp61wz2aRZsyY2lauWplvuVnegXxTbe7ctnbtmrZ61eqs6+VBkLzmT5438Oo1f2+0eSPOviffjfM9OYbdSeF77rVnxjn4oIPTf/88poAuU3Ofmf1TnLRFcIsUlK7jMotTxKD8XisY14N7cEDrP/zDP7S99947z8zytmHN9EHFe63VVUfHyxmdMHW8aGAQGE5GmrHwoVLn9pi1qL0vhfF9GY/nG5PlPpNx+lF0KEIB8iijCML4kV/3rkOc7UFWNubymtf0HQcgDNl0zIBZJJ/eMNPj7TjERnqHXu637+J8dh4TrF37VB5ZYOZIXtoivwMXV3VPNn8kSfsIQ6hWrVzVnlzxZKTbEvlsaFOnmL2amnKlczwBt2jRonbAAQckgSoiRba4Vb6CMpT/aw3Vxtxjjz2WH1p2gCjS5IT0qpOqrxe7juQ7bqvStaOjI/4e4g/4h7cEHR3PAfWZDPuWGA6HNNasQxnRwniQHg/gzycmy30mwzA57nNJq2wF8caEiZwyoshKhSFICMrKlU+2u5cuzRmJRx95JGeQHFq5JUjUscccs+PMJhvm991333yePgOR2SOIy/QkPb5RR74P506JOraMJw2oc2mQm9mz5+T5Tk4XnzlzRuhG9605I2WmygGWD9z/WOrsVHDpGH1tKuyEE07ImSznDJFLn5y9WrAg09Ch6qmur1WoD3Xq7DFHDZx66qn5SRz19VLXzTj/yf28o+O1jE6YOl40GHyvuuqqdvnll7ef//mfT0NaZAFReKaB+oUwIs8lj8lxxyQIxmRP3HH8cdiuQJY4DKiZHjNG6ujBhx5oTyxfluSJNEthZn7U1amnnNL22HPPnM2ZE0TH5u95c+dmGXIf2PYgX9On5idNEBtAkqSVxl4nQhGimTNnRTpLatMzDoLkQMzpeXr3sHkcCTPTNXPGMCtFX/EeCRLnwE153n///RNEb2NezTiZ7fIq/YEHHph5m4mqNn8h2vSVgCo/+AyQbycinT4FZG+TuhU+uc+9GNhVnq/VduromIxOmDpeMBh8DbY1c2KW5FOf+lRuSv6pn/qpPFl6MqSpdGP8sIP2ZAMwlrMr4zAZY324ep6MXem7M97WIX0YQm+88U/yMj1IYp6cvTWXwW699dZ26aWXZriZJHVmtsZHeRlS+13MQPCHyoOxBf7IDNgoPm1q6BT/2QyO8HjLbjiscjg6gA7SI1DImitjXe1VZfLsfpyvfOjC+LtHkmbMnN6efHJ5u+vOO9u6IEz33XtvfpjXUtPcefOivfdsZ55xRpImHxFG9KRXS45JqPraHcF8uaPKkW0+0UYF5S0UGfVJoK9+9as5Q/fOd74z26HSvdLr4vnAuP5A3XR0vBTohKnjBUUZX8bZx1gRgo9+9KN5jMCujMHkwbHwww6SzzTYPl1eY4jDTc6//GFs3KpMFc5AOsIoTGf6O43bzIywK6+8qs2YPrM98MCDuXS2YsWKnJFBKNSPjfCeJxOVsUNaQD7yJjeXdUKNLVs2tVkzZ6WfuCEgCdtwJtNAjPiTK4+SUWRJOtdyRcwAweInvtmkDJ9h07fjD4IIRByynwoiuCHI1N133ZWzKZbsuKOPOTpnnXxbLU92n+Ksp51LlUDmKxHqDare6hnG99kmAe1wb5BLfx9nn312ntOkLSr9ax1VT4XJ/aSj48VCJ0wdLxhq0GckfL3e3qVzzz23nXbaaWl8x8ZgspGRdowf1nCMDRTsKs9ngjjjeKUfvxrIDeCex2H1jFBs3bopCQbYsO38KfuSZgWxWbTHnu2E152Yy5NmkRBL964gPYI1nnWoGR+zOmbr1BUnTL1y27aZVdp5thIGs37D+iRTZpfMMlUeRZbEq7LIt/JzX+HuxVGeKiO4dw4Uf3kgUeJVGti6dXO79757gzg90h577NEgUXen/0knn9SOO/aE3PPkbTHxJ+vwSkLpS/fJ+ruvOtN/qqzcd77znSROH/rQh3IjeNXbax363hi9XjpeKnTC1PGCglFgBD7zmc/keUtml8oQjmcsxkYGxkYGyv+54pnkTA57urj8y42NeA3k/Lixn3vx+K9c9UR7JEiCIwC++c1v5SyPL/nb43P44UcE6ZmTBMOSmzRlSBEO92RySJNnjvyKJ6yI0049gjBNn5ZvyvEL051XM1z5eZVpAwFDmhCccZ5IT7UNWfzIrjJxnmGsb85sxbP05LqaOQNhm7dsyHi53Dh1Wrv5lpvb8seXZ/9Yt25jpkWo1YtZJ+UFeQkDOpDxcgYdgc5cPU9G1anyuHrj0VEbzmk655xzcoYRhFX5Ozo6Xjp0wtTxgoEhNTvyxS9+sd1zzz3tF37hF5I0MaQ1+/BCY7KxeqY86TsGQ1bGTFgZNzKKMBT4lX8ZOIcSchd855vt8WWPt4MOPmggA/ssbkcedWSSEp8kiZxSRhETV2HqrvzJq7KYYeIQijxSIOrTfrAfLKvTuTfnAZc706uPbSF7ZpC2iWgBZIs86cWtcrrShy7Sq4MqI4jDT9rS2czV1m0TJG+r5UifYRnKt70Ns1Lc9GlmwbYFidqSh2fef99DeZbUnXfemeTxJ3/yJ9uSJUtytq3apeqeezlD+aB0reenQ9UJfP7zn2/33Xdf+9jHPvYDZzMJr3rs6Oh4aTDtN3/zN39r4r6j43mFAd5r5xdccEG+4XXKKadMLAkNxvjFMABltMrtDuO4u9Jv7DeOWwavnr059qUvfaldeOGFEbY196Wccuop7XWvOyH3KOVp3NNCViTzDThGsWQXSSlDWgSlZFdchKnIino1qyM8icuEmlPjBjnhEJkZ02e0mTN2LuOVQYbJ8ssPSgf+5YQVmRmgHtTbxIngkac4kvpdNn1G3PvYb5R5ytTQ0+auKJ99WgceeHCSScRPn7Fs6agCLwqoL3HglUQcqj6fCcKVyVW9m1XSZxBF+7uUtcJ3J6ujo+OFRZ9h6njBwJh+85vfTKNuM6tfzPBiGr3JRkbeT4fJYdIiCmW0Su/yH8OzJRUzaTY133DDDWn8Tj/99DB8S5IgzZodJMlma6/0B9wjFZbHzKqoJ/EYTnm5N3tkFskzglREqoiK8Fq6kl6YODNmTGubtwxvwZGHKFmOA0ty27YOZSnCVQaZq7aRBycOv8qnwpWZ/ELujTJjFn78818MLykTOWybdshCmLYGedI6Q31OyeMPkD6b383MOaMI8dRvfJz5oIMO2nGg5ssZVSdVn+M6mozqXxVPe15yySX5csQHP/jBfHMu62+izjs6Ol46dMLU8bzB4G9wZ2QN8HfddVfuXbIUZ3mlwrlXCsqgwdjwVTldGTmG/bOf/WweD2D/zdve9ra8mvmRjoyauUEaqi4K4vFDjioeuUhT5QHIkDjiVjxXMsXxjNhUPpWGDhw/4dIUqiz8xSG7rpNBrrCC5yoHf/dczXaVfpxwy4zu5UV+6VjlKb0qrlkmRPTqq6/O8p100klJQutTOuTTvdKVLq9UKLdDQb/xjW9kuT7ykY/k3rZxPXd0dLw06EtyHc8rDOqcAxidwWPw9wkUswJjYwivFAMw1tN96c+g+eK82YDrr78+DRuDbuNykSVkpVAERHpypEcY3IvH1awSv8kEou6Fu0c6iizwq+XOSisM+JXOUHFcSybdkJyK6x6E8xunkW/pUJCm8lCOCpMGKpwreVAyyQPhpbe6GJbrDsy3xh544IE8q8omcWc70Zkuyl1y+FWer0QovzKrA/u59CNLlfBKLldHx6sBnTB1PG8woBvoy/j6lWyTt71LZdDGeLkbAMZrVzoiA2Y/LJ3Yb3LzzTfnN/Ecl3DkkUemETcLhDhUmYss1H0RJPJd1Rl/9eZaxl9elbaIiHvXiuOq3oswQfnVvTTyGrdDlU1YkQ7yyolX+Yzl8XPvKl7Jrrie+Vd+wA+EVz7gvvyqfJP9pbWnxz44y3OrVq3Kk9At3QlHnqQTT5pXA5AkfcHS7hFHHLFjD1dHR8dLh06YOp5XMGCMoQ3PSMOP/diP5d6U8q843CsBZYCLACAKTz75ZG5KdjqzWRAbun3WwiyIGSOGm7+443SAFLivZ3GLeMirDD9Xfq7lV7LkMyYUpefYT7rymxyn5InDlbx6LvJT8UGcCucnHzND7ovolExhBfflxC39xa10UPlApScLhCFLZps4z94mu+222/KYAgSjPgEzzvuVCPqrV8u7ZjAtP9q/1dHR8dKiE6aO5xUMnMMZnVrstOrjjz9+xwwK4/hyNmYMONCRK1LBOLv6xX/jjTe2K6+8MkmT83LOOOOMHUuO4iAC0o736PDnNy5/zaYgDzUzVPmUDOmFV/oxikiUjCIe/MWVhrzKkxNPviW75LqfLKdkVFqOPOUCYcB/nAf54tUSGwivdPKAsR7ig2fw7F49TC4bmG1BIOq7dE4Qt88JoZJOfVbckvlKQrWdmTPf59O3fFyZX7VJR0fHi4++6bvjeQUD5ywZv/x/9md/NpcTDPQM2Mt9oB+TAK6MO93txzrvvPPyDTjLb2984xvTkJVxrz09ZJSRl44TpwgC0lX1wSES47yk5xj9ehZe/uM8EIqKVzKElU6unsWrdPzEK704KP8iJ5W2woUVGar08oAqO1fpxOGAH0cP6aDygSpf6Vx5VJh715LPVbnMYtonh8giTmb5kFiv5FeaVxKqfsC9fmf50Tfm9tprryx7Qfk6OjpePHTC1PG8wQBvU66DKv/ZP/tn+WZcGTeGy/XljNKPIeKUx+b12tSNnLzhDW/Y8Z03hly5XMdlK0Om7PY61ZKkOJUGyUCeLN2JJ3xMulzlX2SnNoMXaalDLT2LI434wsazN+C+8oeSA/zcy4Mc6aHuhYnDjeW4CpdHEZrJEF51I1x5ofIG/mSM8wFpKy/OMwfl79lyHNLpGWm67rrr8t6snw34RShfKai6LGeflr1ygDTpB1VXHR0dLy52/lzp6PgRwRA7OwdBGBs4eKkGePmO3RiTw7gyxgyX2STf97r44ovbIYcc0j784Q+3U089NTcgKysUCSgDV6SFcz822J7H+XCbNm5s37/4ovbxv/wv7a4774g/yCBLqm3b1rbiySfat87/RvvMpz/VHrj/vjYjArZu2dw2bljviMgoQMjbFsQmuAo3Pf7nyj+vESebYIo85Y28bAvdN0X57D2K+NOU12xRa9OmZ8apXxll9UBvug7kBwkbnPutWxErYZtTp+3xvM15T6E/HegUWWS51Am5XJWfnyvC5iov+YwhDIRxULpVPYvjuIH3vve9OROj3fTFjRvXS5n6jesg6GXK4F5OqHrhlM+yHOfeWV2l78tN746O1wI6Yer4kWAgNxtRRnX16tX5nTSvQ9fAz6i9ElB6KotX2L/73e+2q666qr3lLW9p7373u/MtLXEsAykXeB7PxkxeSuMH7suPfGkY+ZkzZ7Trrr2mfeqTf9++/c3zg+uEQY86nTFjervv3qXtk//w9+0T/+1v20MP3DcRtiX4z7a2Yd1TE8RkW5KS7UEIECVhyMqmTWagvK24MUnD5i0Ov5TvptAJydiaB1tu2LAu/dauXb0jPt3oWWWEnaRFW2vzIG6bQu5mZ0I5S2l75hOlS6JE101B7BAUh2jSrfYxqSvyuLrXj4r4qMPKv/Ido+IJF5dc6bn99tsviZP9TOeff377ZtSpT68UWaKnqzK4L4zL+lJCfZQuVUZ/T/ZomeXUn5D1Tpg6Ol58dMLU8SOjDKHN3j5tYdmqNkG/ksAQc/Zfff3rX8/yvO9978v9SmaVGC9GuUiQaxn7MvjilMFj/KCeQZpKly7i+IbaunXr840ohpGcrUFarrn6mvboY49m2JYtW3N5UJ0KV79FLJCcyGVIN6EL/xkR7ltuuYzjMySBqZFn6Tk97ksenTZu3JQncMO4TEWI0z+IRvoHAXFSufSWB4UrjxX+Sqf8WzZvibIMBKX8S1aRA+nGfYUfV/UH7svB5PhkCFMOxFa7eXPx2muvzSXix5c/PqSN4slf2V/uUF/KZpO7vzFLjvqIsnZ0dLz46G/JdfzIMLCbdTEj41MONnozSmX4Xk54Jn28xq0MluCU6R3veMeOT1Moz9hIIyt+6SMTjPRkIlCGXThZnqXn3JceWyxjXvr9PIxxw4b1uaH84IMPyvr05XpLftKfeuop7dBDD2t3L727fe+732vf+9732h133pE6ODDzlltuaXfffXcuR9Htqquvyv09e+6xZ1u1clXug0Gc7r//voy39z57J4l69NHH2oUXXZhvnT35xBPtwu9dmEtA8+bNyf1od9xxWz7fdtutaaz33W/fIGIz2rLHluXsm/zod/ElF7dLLr6kXXXlVVkPdFJG+jtL6KKLLm4333Jr1gdSbdlWPGnFc606ds9VPVW9lSu/qlPpqj6l42eGSZmWHHJQkqXbbr0tSd5ee+6V5CMkRTqyhjwq/csNVTbLcdpNW3hjDml6uerc0fFqxc6fcB0dPyQYrnpbyYA+NkCMF0z2K/8XG2PDzJVePvj6iU98IknAvvvum59zsWm4Zs+kA2VlrDzXUhDwq1/+4zzKD1EAebmvujDjMT3kHHjgQUG8ZgRxui9Muc2+T+anZcghY968+VnHf/Hnf5GfCaGvg0H/6I//KN8Os1/nb/7mb9ojjzwSabbmGVE33XxzkoRHI+5//a//NdMghJ/57Gdy6VTYF7/4hfZf/uK/tIcfebh9P4jbZz/32Xbb7Te3rdu2tEcefaj92Z/9SbvnnrvaZZdf2j7/+c/kzAzj/b0LL2x/+Vd/mR/HRez+8A//MEkZYiWva6+7Nr9dh3z+x9/5j/mmlyWl//Af/kP7yle+kmSu6ma8xKRe+JtV2VFHgXGbcZPJElf1Lr17xPHII47MfU3I4mWXXpb6rAlibDWu8ofK/8XGuEylg2uVt/rbmWeemf3xiiuuyPOnKu4YVV/Cqk7Kr+B5nFY+VW8dHR3PjE6YOn4kGGzr1GtvxZldAoP8rgb1lxoMEJSBoD8igmB4hduM0rve9a402OKWAS7ipEz8kB6GniEmw/1ko8M4Cav7QtWN2RezPGaAzIgcvOTgnDlau2ZNWxWEZjh/56DMQ37emEJIf/VXf7X9L//L/9J+7IM/1tasXpPfsSOziNgwczKlLX/88aBezoQaNllLv+6pdXndsH5DzhhdcfkVbUqU07IZP/Lmzp0Tek1t9917T5CL1UmeZs6cnv5IiDJZMty0aXPKsldoj0V7tP/hf/gf2q/92q/nBvmvn3dee/ihIGHf/35buGBh+6Vf+qX267/+61kmp6MjduRU/arraht1U7N3Vdeu/Kse63ncnmb6tJM4wsh3RTa9YSZvpO17QRqdbyTN2L0cMNaH7uWUyb5A39azNFf1MEbFUyfjtBXGVZ2Mw8QfyxuHV5yOjo5OmDp+RBhoHeJ4zTXX5AnMNdgbmHc1qL/cgCyZ8bCP6D3vec+Oj+ZCGe0xGJAyOoiiewa/DJV7DqouGPJathOPq/rhj4QgQq87/vi2fPnj7aGHHmx33nFnHl1w9NFHpw6WCxGWD3zgAxnfLIP9RPZW1REDiFEZOUteZEo7c8bMNjdk1UnYc+fMze3OV191dX5mBJGgi5kjWLbssXbTzTcGaVsZdbCpbdm6JdLOasufXN6uufaadu8997a77r4r6m5DW7lqZb5NePabz26ve93r8vyjY489pt166205qyT+3Hlz09BbUgIb6u3HGtdt1WFBmDoqCBsb9qrbqsOq35JZ7QRSqAtLrPY30eOLX/pi6lQyXV9uqLakH+eMKX1COfXbMSru07lCyar6G6P8dpWuo6OjE6aOHxEGX0bK1XfjGHPGh5s8IL8cUDqVfl4/t3/IzJJTyekPDDiDwRCb4SnjUYaEwSKjnqUzu8FJAwiXOK7gvuQiKeSWHHVoj5KN1zfffEu76aYb8+2o+fMXpOG3VwjpsRH9D/7gD9qf//mft/O+dl4uiQ2bvuk26Ddv/rz2RJBYxMR+I4TW8QWbgvzQhX7XXH11u/SyS3ND+6xZg+5muZCfT33qU+33f//3cvnO22Xrg9xI89CDD7T/9//9f3P5zRIgmJlCxMwuzps7N5faFi/eN8mb+t0U5bklyvPxj3+8/fEf/3HO4pm9Uya6Vn2UIeeAH1d1Jv8KgwoHspRLuLgF+SN7wtSDpdb3v//97cijjmqPPvJozn5Vujoe4qWG8pYbl9e9vUvOALv99tvz5YDJUB/qoohiwTNSrazqpOqu6o8fV2knh3d0dAzohKnjOcEgWoOuwdXMx7e//e38lpdXug3sNdAzXnU/HoDHcX4YlKyxzGcL+UpjKcneGxubzz777Dwd2q93hgqJQWAYaWU181JlViZx6qypcV0wSAyTtPyrjOTwE7/ienY/NcKmz57ZZs2d0w498vC234EHtPMv+Ha7c+nS9u73vbct3HOPtmHLprZx6+Z24y03t+9edGE77oTXtR//6Ifb6898Y9u8PfKNvGbOmd22T5uSz+uDQNFzj0i7datzlzYnkbHkNnXa1LZy1Yr27QvODx23tHPf9fYo77q2YuXytr1tafMXzMn9Mu95z3tzxihqLPVXX7Nnz2k/9ZM/0z70oY+2N7z+zDZn9vzIx2dIprSpU2aE7BlJhob625pETJkPOfSQ9ou/+Ivtf/6f/+f2v/6v/2v7uZ/7uewvRU7Vg/oqqDd5InFVj+WeDmRw47TqYPs2hGumUoTf7CjDvHb2m97S3vGOd7W77rozCPO32hNPLIuwaJso/7Zt9lMNxyQ8n6gyuo5BX/5V/sx7CsJjBtJyJU22tK2h1/TpU9rRRx8Rbbqp3XHnrW3dujXpVqxYHuT43vbwww+0q6+5ol108Xfb9y68oF188ffa17/+1falL3++ffnLX2j/+I+f3HHlf/43z8vr1877crvwwu+0yy//frv5lhtyz9oTTy5rDz18f1u5clXbuGFzEN9htnUgVJZSPQ8ErF5MqDaoMlZ77arcu4r3dKi44zRjSF+uo+OFRCdMHc8Z9SvelXEyWPoALcLxcgddkTwbvBEhMw7eTDPjw8iCAd7gmwY3BugqJ4cAeBbuue5dQfwxYeJfxqQgHWScqVNyiUyagw86uJ111lm5twjJOSDIE4Jjr5B9STZ7L9533/bhj3w4SN6bk6CagVIOG6ynTp2WRxCsWrU6y/LUU+vyLTwGTT5k8Ud+li9/ov3ET/yTts8+i0O/bUmG1gehoueb3nR2+/Ef//EgkWemv3Kon4NCv3/yT/5JvrJPTzrPnz9sRr/oootyL5VS2ie0xx6L8lt7hx9+eJs9a3Z+980MnhmmCy64INug6qjqlW7u1VfVIRTR9Oze1bO0Bf7AbxyX48cViULULL2ec845uWT4j5/5x1ziLI5Usp4v7ErfgnLyH+u5Pdq6dE+EXmSoO0uws4McX3zRxe2//vV/bX/3d3/X/uqv/qp95rOfDSL0j+2Cb1/QLv3+pe2G629oN998c75VaXnXLKNZR7OpllG9OXjfvffliwX50sDll7Vvfuub7TOf+UzOBv7Zn/1Z+6M//KO8/tXH/6pdGO1rNva2228LGfe0p9atDbWGWSn16UpHrsqpzFBle6Egn3IdHS8k+rECHc8JNaiDQdIgylB+8IMfTIP0Qg6MT4fnkqcB3cwS2AhspkN6ZamycWW4DfZFisrojQ0BV88VPjYahTJ+DGRhMDYz2re+/c1MY48NYnPRhRe2o44+qr3/fe9PcnPJ9y9pp592eps1c1ZuCrcMdtllYRRvuKE9+MADSfjWBAG5+aab2oowirfedmseK8AQ3h/hV1xxeRrMd7zjnWnsGNLXn356+/CHPhz6bM1N0Ge96U1pTO+4464gEm8J8nZIu/GmG9v1193Q3v2e9+QSFl3e8573ZxkQDPk70NOzDxIvj35w4w3X5+dJEC6kTrm8eejttFtvuz2JleXFc889N0nYuA7Frbor/6pH18l1CrvyU6+T25Msesqn8lu4cEHcT2k33XhTe/Chh7IvIHY70z4/xIm8QukzRj1n2afSb1ounzq6gc5L71naHnvs0Wif+9r9Ue8I8fInnmhzgszutffeeYTDIUuW5Gb741/3unbkEUfk3rdjjjmmHX7E4bncnM/hLPPaZ3bYYYe3/YJ862eHx/2xxxybcY4/7vg8OkKchYsWts2btmQ73XrrzUGSnsr2veXWW9qaNavbvffcl1cEf8+99thBeJO8R5kQKhvI3O9go5Owq/rYHcbx62+v8FxldXQ8F3TC1PGcUcTAhmFG00ZaA2wRphrEXqzBa/IAWs+TB1PGx/KhvT0Mtj0hdOYvDVfkaGy86wqu5NYsURl1szjkgDBySpdxWjNH/KWDablEtjLfJLMEZpbOm2zeNjzttNPCMC7PN7rMhJmt8XbZnXfemWnPPPOsduBBB+Z5Q2ZxVofxMttkQ7X9Ud5co7sjBOZPvCmWs1Vbt7WPfOSjaTS3xP3q1WvaqZHX2rXr8v6ct5yThviJJ54Mnae2M886K+ye78JtayeddEqWDwGjy5uCaDmoVJ533HF7nvP0ziB+NtCbDbFR2TKdPTcPBelSro997GO5363qjo7qpOqF/AqDqn9+yMc4DMbPY3nkeC4nHv+a9Zs+fVrbb/9hGVkdP/74siQYZtWmTtF+Qx/ixPlhQZ8qQ8lxLT+gj2VTm/7V61133pXLu87Xsg9r7732zk3+/tYOPODAtvTuu1NXM31m8sw26jt7Bxmdv2B+1r3yWpateqh9dvqpsFmzZ2W/MfNoU/y0adOD+OwZRGq/zMdetDe84Y1ByPaKPnZg5LFv+O0dym/PFxPWhr7XX3d9tO0j7b4g208++UT0wVXRf58a9sXNnPgbiSI66mIoqr9J7gfr4pmg/mFX8Sen3Z2sjo4fBf3jux3PGWVAGBmnKDOY9r3w4yYbhxcT48HV/WAYp6cxslRks7L9SshJGZBcsor4jEi5cXokZ2zElc99yebHuNU9f2m5iudaxgp21FHwplUrV+SZSIiFNDZK+5WORHleFoZ8n733ydkn5Vg9seS2eN/FqTv9uLVr1qbMTXE/K8rmlO8F8xfk8hdj6+0/uqxYsbLtG0bRzMH6detD5tq8R47WrF0ThGF2Eiz+NqE7aJIeGzZuaHNmz81yytcG8TqgEnleGQZz/bq17ZAgQzaAz5gxM5frlBVpe/zJlbmEx7jLg87Skkc+ZJ2EU1/8qi7Lz7XiFviDfMSvOOpauQr8+YkHPgkTXmH412bfsDndrMy73/PuNn2aZaadRK10+GGgnGQUUSt9yVQvws36ITzLlz+W/WBa1Mm2iLtoj0V52OasqC917mT46Fl5SKg3O9/7vvdmXTqeQrvbVzRt6rQkQ7OCDPnWn6XWnOUJN+QffTjKpn/QQVr3eMyq1cNbkyVj+/aoyzARPrWj/82ePbOtXPlkyFwXhHpFEOUN0X9XBulflVf9QD4+fqytzX4iceEZfXxryt3q72fKsL8N6KRung7VpmNXmNwXOjpeSHTC1PGcUIMXo/PpT386X822r4UxrkFP2OSB7cWCAXTyIMrQeLvM8qGB/JRTTkndGChxq0x1z4CboWHIoH6RV5mUjxMf6RJWhKnuK76reJUW1JP0GW9a+IelQmi8/g/bUv/taVzowJht3LAx8xJGTN6H0aOvPNaFAfOpEksgDNzMiTfw5oQxdc7S5qgDMwnibtlsM/EwC6Zu+JHnnq50E1Z+yFnqFf5VnorHKXeSniiDb90NqA/4RnlDf59IadOGPUR05koOqG+y6nncl/jJt/KeDP4gbpGwikuHAn9+lfeUKc572pQHh5oVsVzoDTTLy8ccc2ykHfbmDOX47/N9tiBDW8ifLLohSvfcc08ubSKQ+hhiuseeC9uMiGNJTjvar2SPGxnaIvtREBeEyfEIbzzjje3QQw7NfuHNROU3a6T+5sydE89b2lP2i02E56dqop4WLliQeeYPhsgLZkyfkbOUmW/0m6FegwwHiVq4YH5bEUTJbBPC5buBmzZtiT68KQjWcGq7+FdffU0QqSfyEFt/X0iTYyZmzpyVf3eWoC0tT5kyvHk6bqung7JnuUeu8KO0S0fHc0Vfkut4TqjBigGwHOfZF/wNsDUA1nU8sL2YkH8NpJaK7PtxsKaN6WaWLD8wFPQz0DMupTeU3kUWPBvUXcuB+Ayg5zLs7skT37UMSRkFJMTV0lkatfgVLx+/7n3nLWcQyMF8AkjO5k1BAsJI8beJm8Fj3MrwJ0mKaz6HsZs+8Up/eA5li7Qpnx4hT/p6Fq+cNqzyJiELP/fiMa5VnnH5x/fMK/0Z1AhIfaSVV357Lkia9Oqs5JWTvtxkpOyQIy/3lWfhB3SYKJO8s+yT4lYZxLUkpz4QT7M6ljafePKJ/LzLjBmzcvasyNKu8n22oIvymh3k7PkzE0OepS8zOvJGMObOnZ1Xp74ju0ly6ThRb9JoI8TI0qx+cPQxR0cuA4HNeproOy41w+R4CHE3btoYeczLYybsSSKPfmYapaen/uGqHyG78+fPm5iNGpYxp8/QvyNdxKu89JcQ1o468si2ZMnB7bjjj2t7LFqUMpzHhRz6RqN9cuLOnbMg24K+u6vbCh+7jo6XAp0wdTwnGFQNWE4bdk7PT/zET+SgX/4wHtBeisFNngZZxsnnQ8wsHRkDuX1LjCAwOmVgOJisdxlXxoOBYrCgDH49i+OeTHDPr+RLKz6ZHANVMMFr2SPoS8R1ojhChYANOph5smRi9ojxMQslvfLVuUoMPpiR4m92afo0G3BnRhnCyIbsKVMQE8s8DOtggKrc9KS7tPxKT8/qQB7lV3VSZS9/cCL4xtBpWshy7pFZDUVLChRxtmwZiAonPSdt1RH/ksVPObmKV2npABXflU71rCzS8au4ULKB/JxcDwWnRV1FaPhND7KyIAz77WncpUVkql3HOkyZqoEifbjIPVLTQbvyQ9g2Z9jjy5e1x5c91q644rIgSStz+W+fffZqixYtbHvvtWfOKC1cOD9kIzebI6/Z8WMk+stms1Kb2qyZfogMupmNVC66b4n+hHx4tudIv7aUS7dqsyyjWcjQS//xjIwh0NLra5Eg+5Q6NsuHzCivJWF+7qOFk+xmn5oW/XObtok+Gn0JsaSj/moJE9ETZ97c+aHT4rbv4v3aMcf4oXJiluPRx5a122+7sz3yyEPtvvvuafMXzM1lPkdcqDvHJ0yJeNu3D30zKlHu6dxnh1LvHR0vATph6njOYIi8gcXV+UVgQJ6MsZF6sVCG074Qb2jZkO5zJw4u5M/IlF7KwvF7JjBCNTvESUOGK+Oj7PxLjvhlvBgd8UqvugoDz9JXvJLL6EXgQD7imb1g7Oxp8kq4D+fecP31+ev9qKOPznhg/0skS124yocMTl6lb+kh72q/IkjCK75r6QnCoZ6Fxf/TqJOlTswqgbj03hoGVl7qsdJXHhlnIk+ocFd51DOQDZVmjIpfMoFMbhx3sp+rNGbZHODpFX7LSl4MGGZ8fnBpz3JeodKWLMttZmC9WXjHHXfkG22zg4yQtf9+++XSm9keM4pmbBRZepgZ5EMdyU89ud8pe4iDBCE3S6Pd7SO07yqX0KZNzRcGLOORv37D+nyTzhJdta8ZJkdRINd0zDrIGUF9dngzdN68uUnSxeGvX1nKs/k8FEk5lniTjG0Z+rt0QztNDcI+LOW6R5oXLFwYZH9GkKfF+SbevlEH991/X3ssiOS111ybs63k5N9nyhhmnlAl/DNuZbvDdXS8VOiEqeM5oYwCIuJNHJu9y0CVYR6j4r9YYADoYkOsPSmMjo+v+myLMAM7P1dgmOhNT36lr7iDAdhpyIVXHK7CCxWv0nLu6VNxGXvXynOMilv3Q5qQG/88u2Mg//qv/7qd9/Xz2oXfuzA/mMt4nvHGN2Y6UKZha+JQpjKWZA9ydoIOnDBX8StOpYHSp1zFH7d5ygrjlvmHMc3n+Oe/wfDtnJFTD1WXZIz14ldXedV9ofIWNvaH8hen0k6GvMoVqnzSmzHVR+xnUhZv9LmC8MxzRJgGOcOGfKTi9iBJyJaPHnsLz9tlSw5ekm+vaSvkwHKWZTJpLZvJG+mp2T9O3LGemzbbxzYryND0zGfFkytylsmS3mGHH5Zph3IM3xWspVz1m7N9kSeSVAQ86z/yFY4gDXlsytmoJLuR7Zg8I2SIEr3o601Jp8qrK3mRSX71idWrVuXyt7heQlA+OiNGjjjgr07MVjux3uzbQQcelMvoyplQ1eq7o+NlgE6YOp4TDIoGT+fqWK7wqvswSO/aOL3Ygx1dOIPwtddem4TOvqUa+EvPsUHlzxWZgSpTxWEwhZV8JCQNTfgnQZiQ515e4rgvYsBByRhfOWnK2IjrOsNekTBSDBI5G8NY/eOnP90uv+zyfIPJZuGDlyzJpcZDDxuMOmOXbyKFQbWEZ98JvciyZCTPLVsZtyBS05E2Oimr2Y0wmoofzz6ua4Nubozesin0CRkRziiTV+Ut/Yf7qLcJf3te+JMnz9zvErpl/iG7jCpUnyo5Y/njeIXyT/mTUDLIc/U8dvzHriCs2hHMMjmT6Yorrsj6R6IqTy60znjgefnjw/EPSJLv7tlr5oTzQ5YcksRDfdgnVf0AUseo15yliTjaa/PmYSmx+oA4rkMdmSFE+JGJSBBq2GDt/KW99t4r94/pRwiVvoSMIDJVVnL0W2RWPLD0Nm/uvCRR/OTDr/bCSTf+u1CGJE4RBwGiu9msefPnZzx7m7ydR4cFCxekvPqBIg1yp57J9aKIjen7739A6DY1947lmVOPLss4w1EHQx2M/5UuHR0vNjph6njOsGHVx3adtWMALSOyK/d8wID5TCgj5ypPbw9961vfSqL0lre8JQdrxpMrY11GVVgOyBP3ZTTJEc+10rqv+IwAPxjr5166GujFqWdyk9RM5F151D2Zlb8TmC+99NIwiMvz1//sMDRPxK/wz372s3kopPOPlM+ZRzb9OjOJ0fbr36yCV9LvvOOOtnrNmvb444+l8fMr39EADz/8YOS5LQ2aWQuHWcrP6c82+DpDZ/2Gde2uu+/Me29BbdiwPs/emTVzTtahs6zSeEZZvCnpGcHyJtaKlSva0ruXJtkw6+KgSq+1556ZSah6VeaqBw7qCsKAX9X7GMLJKHmVlh94rjglS1z1rQ2EC9O+oB6RJrqbTeVvSU3awW2LuvMpnPXtxhtuzLOTLIEtXLAwZ5OcP2UGFswGFelFZocN1AMhyfaf+Id8WI6C0keaelbs1D8c4kMn+To40gGU2t1+JLNGWa7Ix3KcvGrZjZMvudL7MHKVf9369VkupDg3xAfBRWjMNomrToCuOXsVaUB6BFGe3oBD1sVHzOhpeS5JGD0izdzoy+DecueCIFtOsF+8eJ98G9QRD9dff0P0neGD0wjo8Hfhby+TpiwoHTo6Xgx0wtTxnOBXqKUKZ/ucfvrpOVjCSzlwMXwMgEHVm0NO8vaR0re//e0ZXkbRICtu3ddzGVXxYGwIKj4/8d3XM0hbrmQyFiXXlQNX4ZVfyfcsTck877zz2p/8yZ+06667JkkTA8IgivvlL305lyy+9KUv5cZkxvyEE09st916a/ubv/3bdsAB++cnVh586P727/79v4v6uKOdf/43Io+t7cQTT8j9T//xt38795l43fv737+4/d7v/V7kdW274IJvJflxuORtt93a/uzP/jRIwoFBAA5uy5Y9lh/8PfSQw5Ms+0Cv2UWkwuc0fEJD3vvss3f7y//yl+2rX/1qxjPTx9A6m8mm4Spr1ZUyK1ctGxbGdVXxwLX8KrzkSVMy+FWdjuNV3JInft3XrAtdxDEbghSqbx/qtaxr/5E0q1evbJdfdln2N3V68kkn53lJlpsQEhutESj7lJCInI2JvBGmWu7yDLUhm7OPCOTPAb3s80FuEZ4kXhEPkbUs9uhjj+ayoeMHHFUhPiJk5kgfeyr09wFlM1NIbe1dqv1N6oau0yOuJbkiPBxd6RzaBNnemETcxm7XqLjcm5V750JVcZQzv1kYZak3QRE35Mm92ShyzEQJFw/Jo/cB+x+QM3l+CNgY70ywiy++KIn8vvsuzr1VmsqSY7VhtV1Hx4uB//6nWkfHM8AAZ7O3X4YGwJcD0hCFLn5pO0jTxtKTTjopCRBnUM1X9wP0r0G2DFINvuIyHuKU0eTK2LoyVgwOozT+9T920gt3L728S0dhpUPlD8LMQpi9q7f6fv3Xfz3fQrRM8d3vfDdJqn0eDz/ySPvQhz/U3vf+9+WSzGVBquhu39Y9S+9JQ8SQWuaYO29OpuPnrKb165/KzbZOZb7vvnvz+2NHHnlE+7Vf+9X2/vd/oF1++WVBdK7ON7rWrFmVBtASjBmHlStXpN5kI1bKb3O0NxG9Km/JzbfGvEb+vve/v/1v/9v/lqTqM5/9TLs0CIf46rDKqx6ATPVlH4vPr1TdjOu/2kU64eWqPmFcrxXmWhj7jeu+ULK0lXCzY0gT8q2/X3jhhbk3SdkvvuTiPLjTLNJbz3lrbmy2hCSdcubSKF0nZNNfGw3lGYh3Gv64nxHtns9Rz1B6kKNe3GuHAdFPgyw5oBKc9h01kcRaufL8Jv9Crr6if5g1soSrH9oUXn2RTuIieEiLZ/0ekXJwKaJDZ2RK/BCUG8qRHbNrWbb4n7+H9UF4kB4b3sV1ZAGdza6RIQ+yQ8ksU2Tb9txjz9RzWBacm/nbE+WwziOiT54cf8OHH3Zou/uuu9qng6DrWzatq5fUJyBNR8eLhU6YOp4VhoF+IAwMhs8xvJzAeFmGY+Cct8R4ISCMCL0N2lCG0rUcgwRlSGowrrT8lbvSlqzxYC3u2JVfQVzpyZKfZwbMVbwMb9vaffff2+6++4727ne/s73pTWfl8pu3oC6/4or2yMOPhFHa2M49953tZ3/2Z9u7z31XO/ed72y33HxzGJbD2iEHL2l33XFHGrb77rmvLZi3sL3u2BPa7Jlz2uaNm9ucWXPawvmL2pTtUzPs0Ycfbfffe387841ntmOOOqYdd8yxEW9Lu/SSS9p0xnxrGLMwhk9F3TqnZ2sYug0b1iVxWrVqRRj4MNSXfT/J1axZM8JAzspNyJZ/9A/fJHPS8+OPL8/lOeVXt+rPtUipOuG0FyPLr+pW3VT78Kv640oWV3Gk5SpdufGz+4pHZuVVcvibZcnX3bdvbfsfsF878qgj2gMP3B/E5JL8jt+ihYva0dEuymnWKXJOGcpgRgkp8IkVRIE8hj7JUZS5zqkyo4MsORMpydHExmmgh/KVPq6IDPJjP1i+wRbIvhjitI+/AWrIlx8dLKkhWGbKLG8Nm8CnZz9CcLSNk+ORIqSKfgiMWSD6cvPnzsv+4LTx9It8c5luoj3oqafnjFUQKs9mruiWdbx1KJPvFiLxDs2UD3KnvRHtJIQhRLmkc7UMffrrX5+Hc/pky9e+9rX25S9/OWcthzYaZuiqzvh1dLyQ6ISpY7cwMNWg7d7gbnDOgTIGfu6FROXxdHnx8/FXm24tidg/MhixYflCuEGV/q7KUoNr+XsWr+JUvMpvnK/78fNkVF2RIX8Qv/KEsXx1ykDbD/PwQw+EwdrY9tx74WCwI543h5Y99lgeqrhnlOv44x2+uSjIz4J2+KGHtdUrV6VRO/aYo3P/1v2+Qn/HXe2Uk05up596elu0YFH4PdCuvfraduftd+VSzZZNWzLO6pVr2j9+6jPtd//T77VP/Le/T2JlScXbUI8+8kj4faL959/5T+2//tXHk7AhR9OmTwkCsKE9sfzxduUVl7eDlxwYRm5ae/iRh9vjyx5vy8J9/ON/1X77P/x2+8IXvpAbyO2dUidFApS76qAMn6U7hAPGcar/Fcb34uzKiSPtuJ45ckuPilfOMwijCwI7LQiGU60POvCAqPP57d777gniMKMdc+wxeUTAXnvtnW2MADDwljrNqshXe3odHwFJYhNATDCOYUmrDWQp4ptdkmfpIH2Sr/Bzj1yb8RnO0or6iH/ytDHdbOSW8HOqtg8ID2ln5fOcOXOTxMgMCTGThHTZB0Wm7NSvfOk49Ff1MtQbwrwpyJXTwsOj+X4cojTH3qfQJ2dbg+ghZtLKW1nqHnFSfnnLR545axZxknzJw9ldkbdvH5plTD31gwhDPpcsOaSd/aazc3P4A/c/kIfQWo6Gqq9x+3V0vFDohKljt2BgDEgGQW+eMcpLliwZptZfBjAIWwqwFOetOLNL/Og7NkAGbMYQ+HPKNfm54rqvgXhMDiuO+8nGfAxh6ki8eiZHWmkYqJ0yItwv8DSKQSriV7cZAEtB4jAgnoXNDENpky1/RjENULTRiSecmAbKCew+dnvKKae2gw4+qL373e/OfTh//ud/kZ+zeezRx9Jwm2Ww8dv+FyTzuGOPa29+85vbOee8NfKdP5CycPasOBzRUlKWO/6ZNfjG+een7vac0MV+FsTInqezzjwrv5zvO4Nnv/ns3Hxf9VBkSFrX8lc2blzvOdsQfu7Lf+zoA2QWxnHlUfVdKMJUepSccTwq1dtklkkRAzMd9tn4MG5+z2/m8EkV0N+QXkufCMTcaDdkZyAgLetanZOPQMgrwyKf0sGMi/uhPww6yR8x0v7DpvCop6iTQXb0r8jL25Jrov8jG5ZLc9P++nWZFtFxoCSSRUf62VhNh/FHesVFlPUfe6PM+OiLZmzpgoA5S0nfA9VEhj1J9LSUKr64SCK59LYkqExAprhIpbLY56Ws8qenz7JIRxftg+jp//LUD94SfdMHpJX9k5/8ZL6p6++eTJB3R8cLiU6YOnYLA1E5A6PXgc3g1K/mlxo2oVsmfN/73pebRg3ApVsZ4TKOrlD39VwGrAZf/jUAi1tGu/wrzID/dJicXxEEfqVfGQebsv3q9lYWg2A/lmd7g9S5fTTIh1xvvOnGnGFgAJEjG3nJ8Hp5tFZuyLb/JjcpL1rUPvKRj7R/82/+Tbqf+qmfSiNo+eQNb3h9Xp1T9Uu//Mvtx37sx3L/iBO5neLsBOcPf+gj7f/8P/+/7WP/4hfb8ce9bsdbVWYYr732miBX57TDDzs8l2jsP1H/Zj0cFPov/sXH2tlnn50zBgznuC44BpUfMlDECNQtf3HGbQBV92MHFa4N1Wm1ozyq7Z4uDfCTVr7SIx9rwojf/8ADeXaQvUKWev1QcBilje6rVq5Koy4tWQgW0dotl93iHolAILxmP7xBNhAERCnvgxh7DR+J2RTkB7HV/nRGkEtXOqkjy2vUzrfUwh/p8QNBmM3RYpNBFyeFV3npRxd1Tb/8URHhSBLiRyflR1qGOtySYYgeooSAVf3I2BKj2S5LikiNPU/5nbrIl4LyRKj22HOP7KfaQx9HuuVb7VGzcfZE8Xf1TL7y68fqOJf6oozGHj8A9Fn7tj7xiU/kjFMuR3Z0vMAYRrCOjmdADrYxgBu0bfi2p4bRfbFQg/5kZ/BGLGw6tpdkPLMEjEMashiAc6APuFcO6YWV0WZwivx45oRzlRbIllb80kEcqLjqSjxXxg9K50ojfaWtGQTEYtGiPfIDpxdeeFG78sqrcgM4UnTWm85qRxxxZDvl5JPbZZde1r79rW+3888/v33zm99sJ554Uv56N0t00kkn569uyzSWJxlNb2rtf8D++aad85ocHSDvnF0I4/mtb3+rXXvNNe1rX/tqO/8b54cejDLd7Cexz2hKW7N6rRLmzAAol9mtN55xRhpiunulHnlC8j7/hc/neVHf/va3c/8So1r1qw7cawuo9kpDuXFj3oPnqh9Xz+WqLsd+5FS9V5uAsoL4/MtVeveVh76hDz388CNt+eOP59tliKj+LvzY445N4rQiCLpX+hEds2rkyAcxQiQQmjwEcqKtlVf6Yc+OmbPod1HHYFku+0LcqydEAaRTHjrVTI97eZmdQY7klUd7BEFDrOUvnTO7MDZx8/uE8S9lBYmRkD7kKevaNWuzPWvzd+5XCyKTs1oRz2wmvV1TRpTNoZT03Rhl12bS6kvDfqzNmY8yiktnxMgV1IsyqnMbv/UjR17QO6omw5AnusgfCVu79qmchapZOj8GfPSbPvqX/U1IeZULlL2j4/lEJ0wdu4UBqAYhxsiZOwZ4g9OLAQZGfuU80wMxsHfJQOyXJ79h0B2M685ftj/oxCl4NuiO5VcerqCc8hgPxq7kuJIhLPdzRDzPFY+M0olR4i+uOCWTG5Y8pqdx/uhH/0luMP7jP/6jPHfJstoJrzshlybe/Z53p9H4y7/8y5zlQJLMrDE+ZDsqYI89FuXbafwyn6gH+0UYaEbPMhtSdsABB7af+smfajcGIfujP/qjdsEF38kZlBNPOLnNn7ewLZi/KErgTa4gFNODfLbpadzMgplh/OAHPpj7eNS74wXMCvgivWUTJPaPQv/LLr+snRQk7/jjj8/6qPqpNizHTzskcYxnZfHsyvErUlPt554TPpZXaThyq74LFQbV3p7JMKNhCc6MhnpevO9Evwpigsx4df/Nb3lzWxTk/J5770kZCIg4TtNGDOz/0ZbIjGUzzCJyTJITGqf+SYomdE/COdFH1A9n6UxYlTl/CIRskJe2RE4QlgXzF+RSIVKlnN6+89YZEitfaTn9k05mEfUHcZEt8pSBH13A3icEyLlaNoCLwxXh83kV7V3t9tRT65I8CpcvooTgIOtZx6GvsiBi8kEykW/1jRzl0QTJcaOvxb0N6Lnkp/zh6+wms2lmRKuf0N2sqI9/m/X7+te/PvG25s63Yjs6nk/0c5g6nhUM3mZzTH9b1rHsYmDiXgyM86ELg2OQtJ/KieOvf/3rc3CtGQqD9NPpVv412DOoVRbpQB51Fc+1/NLABBg2KEPF30BOZuVR8kD4ZFlpTFLX0IehDSN1+OGHBcE4LpdVzj33Xe1DH/pQfvqCAdl7731yz5E30k4MEuV4AbNGDJTlsocfeqjdeutt7Z3nvrMdGIRInrnEg2SEfIcaHnrIoSlj7332zpOokSSEB/HKz8gcdHASIwc1mqmy5EdBaQ4+5OD0N1t15llnBnHaM/wPySVDG47JMQtz5BFHphF///ven4drek08ip6oeh7KPdR7kSNtWHVW8cYQRx0WCXUPJctVHNdKW3VdeXkuP20P8kVScg9StKs2XRxkFPHJYwCCSCAEjLSlNflaCl5yyHBIZZKycMohXwQr84h2RWAc3Fn5mnmJx8wHoRh6yhB386ah73DajiNP3OGU75kTOg2bqyVDDizH+XZdnvgeacjKvjZBTsQb6syMVvyQCD3sOUPCvAQgP387ZqqQRXDQ6NbNw7EASdYijr+7zVHG+QsXpGzlRIJs3DYjJD0HCBWCqc6GM5zib2Si3eyVAn0+UuQ/ZSVPeS3NIUnKnZvpo30K9Mo6Dllk63Nml7z0YTywp8vHiLOOJvpAR8fzgSnRqYaRo6PjaZADbwywDiK0RPQzP/MzOSVuMHqxBiT5M0oGVXjsscdyGp7fRz/60R2bV4v8gPuxfmWwlKcMUoWLK6yeK05BGFQa4QwVA+aZsXHPH+oqrOS6kulaZSl/+07se/F5kiFv+dElSMGEURG/DDLD5TX/4Rf/1FyOsafIUp4zcH4rfgeZESGzyiEe2V7trrOAWNI6U4ceZrqCdqSBZLxAvKi5JGXbfKU/VBM3Z1HMJkR6OtENGEwzCspYBGgo81AP1UbuXTkyXKtOwJW+nPRjP6i0wF8cz8JLxjitMPdcya387FlyjpVlXQTTK/hEIBYKPMg2UxK6BnFl/D/16U+nIUcy91m8TxIIZYuIE3kFSQn5pZM61Y5F9vQZpMd+IXL1H8uf6pEczzVTkm2wfWKPXcS1hKVNxDNTg7xZVjXjgkRUmyqbvhJiU161FT3kTcc50Ycs4Q19eFgqtG8p99VFPGmU30ng6mZqtLt+h3jhRpbwEEzlyvqOf7kUHHoi6Emoou/k7JP6RvTkP9FPvP2JRM6P/urMMDNM6ldeylc/SLSF69Qpw+eH1JP+JQ7db7nlljyxHum13+8dQdSVtfqCOu/o+FEw9KSOjt3AoGNAstRjbwy8mAOQvAy2Bknk4oILLkjS5DRvxAAMnINh22mM08BMoMLKeeagBtax21Uc9/Ihlz5pICbi8C9Ueg4M8KXf+Fr+kJtoZzi/xqcg4lf1TEY7jGtjdJEbejG2lh5nxq/8PdqUaTPCTW/rNmxs37rgu+2upfe0N7zxzDZ7bpAlMxkRvjmISpiZtsVvoyA4ERAGNH7Fh6HdtMV+GF5B9iJORG3bw5CptS1B1IIRtdA2n6eFIZs+bWboOCuMWNT5dkTRzAdiosyDbqXvNLpN6M1VXSj7+D6NYNSX+oQyhlUv4labQN1X/Za/e7KkQzTIAHIrbJyu/JFNMxTIEuOcRjg3KCOuKSLKNPHpmiALw6zK1nbCCa9rdy+9O98ctTEcOZDn5k1RY9uQAf0VMaObU65t5kZElNGJ2V6dd9L14L9p07D/Sp3QUz24yqv6GTJsn1Ie0xBtWHXmbKM1q1Yniaby3Fmz27w5c9uKJ57MZxvLLQ8OZzlF31O+aPgNQS6QFHuSzFqaEZIAWQIzQ2aUtkZfsCSmbmZFv9qUb9QNB62qE7pK5y9lfYRJj1hanrQZPIlWlMUs6JrVa6KONmU90iVJatStJdCFixamkCRgITff6tu0MQ9dNYOnPeSlPsBMKIJIhllOs7FmOp3M7i066aHqs6PjR0FfkuvYLQxqwKjYN2RgMgDyZ3BeDJSxczVI269gYDzttNPSkJUeO8nHYHg8l/5lKMlx5V9h4pd/xYEamOu5jDBU+bkyXOKPZ1W4MnhQ+RaE+WXOQekA4tUgz0/eVS7y3MsLOdAeZv18rsZ35hgSkF4ccaUvXV1LF3mWX5Wznl3Lr1AypeXEGceTDkrPclXGkutaYeqBX+kobYVPRsl/OkhT5SodSxd+1Ufcm1XyKr6+xOjyUzbLl5bhzBAhFimTJZ9oOjpYgkI2ngyy5IBO+30QKzNRFYc8rsrIz2wIfdRHlbfCx7qLp07EM0s0Y+a0XGry5pqZvZp5pC9icPttt7UFCxa2fSKOPUBr167JMMt+GzdvjD4xL2eSpK29TOP+4YgAhMyeqFqazBnMINB0sLRIJ33L3iNLlAgYUjVsdp+WfRHZoZdZJWUz80bXRXvsET9ylmW+6jbrNcoKyFCOKRFXngghPbNOzDbNdC7W9swzqih1pp88q56k5ywxg08KuVef/Kv/dXT8sPjBkbCj42lgILRHwOZqg4+BnXsxIB8DL+Ni0EOY7KFCDgzOY4hnkDWISic+vwozeI5RhrT8Xcdx3Fd69wZmz64cw+YqjBzPdc9BpS9Uelfxx8/qWTplcA/kKTv/sazJBpbRthRRy5NQ8StOyaq81U8ZknF5GKSSXW5cHsaKn7jjOpZ+nKc0Y71L1mQI558GPmRwhUrzdGnHYfKqcnkmt/J2VWegf3gVnWOg08hHeLVDxE4jPuzdif+CNFj6yuW4yMNeHIbfZvwVK57MWSZLVKHFjrzVEUeeNPKUv/p3Lf08u0f86V71pS6EuZZMr/pbUqWXeDmLE/9qT6H4jidwTlTVg6UvfcLMjn1BQxn1nyhHkBIkxSneZCJNZtyk83depERe3hjMpbjNwwZ0pIdOZPJzT1d1Jcxskj7srC97lmwCz5aIJkQAc5YMGQv5SJ239USQp7pAssDyIDlm1MwmI2vaS5nEoye4yl8929N4xhln5BEb3uylf0fHj4pOmDp2CwOxQccgb/Csgb4G8bF7IWCwKyNKB2/GHXbYYek806UgDvCH0hdca+B0L13F5+9ZujJgFWcMZSYTSqeKy9+z9KVz5SHMPVf3/AeDtvPPsMIL9SwOJx8oP8aFDIaC7iUvDUxcGTi6cMKAfoyKK4hXugE54le56l48IBPE41/1JZxzD3SUJ6OWhjTkk1WoeNIwdhXO35V/lad0G6PiVZpy4zDppAfX8qOzPs3o2rTNj5Of6/AJkuENRkSpdMh/CEHKGmYu+FkCchaYOOoWpNUOVc9VFvVCP/6eq274ua92ci+cDPkgDFm++M9ylhkuG6DN5Dz5xBNZFjNm3pwDM0JFKug4kJ2B8A2zZvG3E2UBacziyJteluGUL48viKsyIUH6m3DEhX5kK8/ee+2d5E05EEc6ykOeVE6yGPlWf0V4kCh6SY8EgmXDoe2ifjZvyXj2VWW9hFOn2gvEk58wUE9QZT7hhBOGbxl+5jM524QcD7I7eer44bBzpO7oeBoYZAySluTqa+1g8HoxYEA10MrXUpy9S2aXGBEDI9BFHLoakPm7ei79OQOseEAumfw4A6k0XN0Ll85zlRs8l+wKIw/Kv2SP8xjnBcLErXthyiK85PFz7wrjeOM8S27pJlxc9VTlEt91LKuu/KQrGeIVhJderpUf/3Ea9yCswktugV+5cRxXMipMPlCyuDEm+0vrvuSN60YbancyGW8noTPGnHjcuAx1j5CETY/0Ueb4R3bOykQcy1A+CcIo+2SIGdjqW8LpwJiXjpWHvqlNxOGqPl2rr7kiANJBPofs1CvInBmd3AQdadxb7iIfWbC0aP9P5Y04FfmT3n1urI77amP6rFy1MstKxpBr6BfEBRESbqlRuihNkh3LY6tWr0q5yGL9PcrXniP62DvlMyxZL6Gv+g5BmVY4f+VEAO1F4jdkPcRVL9pLPDNc2sC2APVhL6MrJ45ns08cnZT9rLPOyg9x+0SP88yEVT/r6Hiu6ISp41nBgGXwsiT3UsAgZ7AzWBrknQVEJ/fCigSUUeCE56nHcU93g7F4rgZZ4eCZDK7gXhoyy/CQI10NxsIrDriHei7U4Mx/V3E5Mks2V+Up3cb3IC4/8aD8Ky86y0O8Kn/dlyyOf+kyRslxpQ+jVmldpS0dq65Kf8+lM1Qek8NcS4+Sy09cz+KTWTKgZELJKlQ+JRu0MTnycK0+xLjry+KJz+BC9Q8fsE0dIv+czUHA44pJyANpkdYnY9509pva0Ucd1a67/rqcjSrdhZNVdVj1I5wbSMhwr72g4spDOH3yLbd4NquVm7WznrTdQJ4QGOkRjgcffLAte/zxnH0SZi+SfBEf4aF9Er64ZD6lJxl5ltbGTbn5Wt6J0K3qJDLMZTP524idHwGOOtEyiCMSRM8sY/yT76aIpw2cAi9NeIeMYW8V/2oX/YselufMZNlLZX8YXcxUCSNP22kL5VJv4pQcccxoWZ6kh/jKjDT55I9N4A65FF/ajo7nip2jTUfH08DgYlbHBkqDkYHpxUQZUucucW9729tywLUsYFA0ABog6VlO/DQyBvqA+DmQT4R7rrAabIVDDbYlU3j5lYExMBdhAFdx6n4M/hVWkD/QvfSST+kpvnJD3YvjypXOuRk40lR5+LkC2RyQQd8q5ziPybqJU/oI46p8ZNQz57nSiF/+5JacsQx+7ivfcsCv0rqSN9a10lc5+VUY8IOSKQzI03aMq2UZxtYnXCofxhqR2kEuIq2PCeeSUcgc9guFHuFKrzF5WrzP4jyYc/njy9utt92abSEew86RKa+C/EB+dCSv8q06c+WE1xKo8KjdXJoTpm3JNZuU12gLsulmb1DqH7LoTb4y5tEIkXbIc6ifPAsq4ucerc2bcmlOGiQrMt1Rj/Iv3aWfN29uHuDpaAUkzIwQncRBuJAd+iIt9kaRSydycrN31B9d/B1nnYb+yjLk67+B3CFjwpWFXGWVj/yq78tTHHVa9S8eP2mQJuOGN33NNI3bo6Pj2aITpo7dogYebxMZ4MAz92JB3pbjDKpIG0OU+yJiMOfKeNDJYMlA0LUGWYOo69h4CQPP/GuQdZWP9FXeHMzDCat4Bn5+ruBa+dJDnMprLIu+Y8ND95LPv+JBlat0lYf08tm0aX0UgiG3T8ZX7x08KD/hw69oMkE+0qmH2faqhOHctimM9OYgAVvDMLFe8Ut+CrdtSzyH7ps3tu1bNrWZ06emm7p9JzmFupZuVWb51D1UfXHScPyqLCBMufm58ndPX7IqXdVN5el5XF/8pXWtPDjy9SHQfzxX3Ugvrrz4l4zhNGqbrod9QsO+n+grEVanXJtlMRtixvOAAw9oDz/0cLbD7DkzwtxbLhvaaNv2aOMZiBB9gnhHm23evCEM/NogvU9lW4pT/ZMu6poentXBrFmWrJz1FeUKF60bJMSJ3jPbjGjTuGmr1q5pm80sBfHZvH1r2xzEx1KeWRsfvU0mEpCPfUP+jiwtqiN+luPUhz1EYlqCQ6zsS1IvypnfdQsiIz6CYiZrTeSrvqpfqxOf+UH2clYs4oSATIMUOc5ABnX+U8lat2595usbdE4b90YeApV/u1EXzgmbPdveLvr6JItzsTa2WRN+02f4EeH7c9HPw08c9+vD77DDD80PRV911VVJnCpf9cuBMoL66OiYjJ0jTUfH06AGcIOXgfvFgIGrBi8DOOMhb/tFLB0Y0Az24givX/OMYBlhYfwM4hWvDFAZI/BchlU81xpEKwyE0aEMOBkGXXLLCZOm8hGv0nBkQOUhHp3JoWcRBHD1DOKVvlUW6XIjcBgUA//w8dOdMy7jPIR7rvz94mdEB4MxEDibaiNChptVEZbxyQuDZ/nFs3xLHldlh9JdnuIKn6z72N910GEwWMBvHA+q7sZ1OzkOHTy7FvGsMLNLZiT0YXVa8Spu6a1sKTPuhYlr07H8BudNtfU5szeUa0vOmph9NcvkDU5vmeUsSUhxRS7Iys3jNjdHlbqXZ/ZhG6/jP/Lpa0amysXxF5eenH7Hb9y3HX7pKIG58+YNy1oThMbsEdIj/UBIHJAaukSb6wO5QTvSe/sO+TNLlnnHPfJUG7ftXZSfb+ipA/ua1JUwZFKYvuiqLDnLFXL0I0t1qUs8y1s/nRkESD5IG2pW9R9e2d/MOtFheJNuan4U2LEIc4KsIVzOa1IHznxynAPZSJU0al5+NQvsb8unYujp+Ajlcujtfffdl3mSX6j+0tGxK3TC1LFbGFDsjWBwamB7oVHGtO59mVzeXhU2CJbBolsOwjFAGhgNojUAFikqYlOGkRHkxBOfg8rPlTxphZV/5eW5/EsH91wZunE6fmMn/rge02iGP1SckiVuhRXKv3SnKyBA/BksMhkQdcVPHI7RtCylLjbaGxP/lME35latYAwHmfVGVqYPXRUlZU+CuAX3pT+4klFlGbvyLzeWU/HrniuIV+0CJQ8qbj2Lwymv+vDJjOrDY5niV3vwrzwYfWHIjXrQj9Sh5STx+dkr5Bo551ub0t577705A1Vy8xoExtW/ysfzULfkTd+RHxmuSUKizkvfyrP6rj5dOiEWSM2yxx7bQYqQIYQEcUB8EDH+yAcitz7aH1mzp8hbcfqAc56A3HVPPRVka2aSEHkp076LF+fma8cWOL7AMp86zSXKgLzsc5KPviYfM1uWAuvjuMqAWDq/yYySuuHPuZfXsmWPZz92zhP4fIs68BFe5Fc9IoKWBeXhCAPhrvq9/gs2n6vLZY8vy/IPH6g+KT/54+PV3iqUrzhABtRzR8cY/dMoHbuFjZaf+MQncpPsj//4j/+Aga8BpvB8DzSMwZ133pkfoT3mmGPaOeeck4NekSFGhIGhh0Ea3NOj/MY6iluGyH2lLb0rvnz5cfxKtviVr3juGQzxofzGaQvlB2l4Q1Y9V56MIYzTjgd0aeQ96BekIfyltSHYr3kfQUWGGDVLUMKeiKu3qRguhnNFPE+P+BGUchlY9UmuN6zM4KljefnkB8LA2FiKmT13QfrTjeGjhysdU4+JehFOdvnXs6vnKov7cpW2yljl9lxpC/XsCuJWfGldlcveOwYYWWLMx/mJw1WelW/K26YtQocoO7n5GZEYKhEcp1TLO8sScevzM2Ywvnbe17IN3v3ud+Wr9ox+7jmK9OKTp65rz5D02iaJXNTjpo1DHyjdMm/p4lp6q29lcl9xzRLed/897atf+Wp+EsR3/xAc5SGb7rUxG5EZ0sTfQvSJIhf1N2X5DHFBSOSRM0gRb12USz/IPVGbt0R/QGZ2kl1y3Eunn8mbnvzoUv3FUh19+UujLuiD4Gkj+uVsZ+RNnzzOIHSQPvc+haOHunO2k9koOuWbe9E2lqNtig+RSaz0A3134wYyBrLpB9fNN9/cbr311vyGotlB/nSquu/omIx+0nfHbmHA8YaJAcXBiK6FGlye70GmBmEybfRm+N7znvfkZ1nS4EzkZ0Cnj8G0UISuZAivuFBhYyPE8a9wg33JLn+DPeTAHeknk4VxHlD15Mpf/Mlp6EoWN86vHD3ELSJVyPRta7tn6dJ2zz335J6MG2+8sT3yyMN5JtAl37+kPbH88fbQww+FUVmTX3G3z2TtU2vbI+Fns65PYTBk3mSS99q1q0Pulnbfffe3Rx59JGTfkxtknXt1/Q3XtzvvuDOM27R8fV58RscSF11AuygPnUv/KnsRMuDPr+7HcV3HKH8Yh9d9tWPVX+UhP7Mf6i1fs486F7/y5c8hlyA93bmhf0UeE3nn0mUQhGz3yMs1y8QwRxxtSjajrT60wx57LGp7BPG0ebx0Tgsft55rNinlh87VzvkJldCLPtXPXTlx5e0q3EwKSDtj5vRo7+Vt6T1L29HHHJ1kLUlLtJdjB7ylRsbq1Wuaz5BU+iGPqUmwld2yXBKo0LM2aCMniFZuLg+ZVU/iKQcZ4g7fphv+lshWZyE8Z3nsG1N+G78R+2jx/AyLOkv/SJ8b7FMfZbZEPD3HHnHpqx2UVfnNqJl1Uvf6YbWvWTHysu1CH/KRRXmq38wnwvwooKMZpvPOO68dccQR6UcOKIN4HR1j9Bmmjt3C9Pnv//7v51T2Bz/4wRwsX2gY3AyMZrf+9m//tp144ontzDPPTANXhsOAZiD17L4MN/34lyEVJg5ngC3ZHNTAOHmArLTlpC1jUHrw51fg53mctvJzD3Qv3fi758gnmx9Xhpjz7Je3cDNHN910U/za3tKuv+66/BUvzjHHHpN6yX/hwgXtyCOPiPttce8TGJuCOD3V9lm8uG0II2Sjbxm/rKtwm0LOkPfwpp5Pa6xYsTKXQBAuhxtu2Lwtz9yxD4QRPPjgg9PQMDgMq1/7DCgwbnSp+nElv+rB87h8FXfsKgwqnXohG+he8cBVuHOWzFYUoVMvnoV71gbSuSe/+hMMszdmEYd2MOPCKCeRmZg5GT4qq78NJK3y9RHfz332c1kXP/6hD7W9994rZ0dyFiX+1UxTaBr/oiwhY9h3E3UTBGT79qGsdAOyyZWX/OUjvfLoC6U/fR986MH25S99qZ1x5hl5AjkJ2l1O5CEg9i0hET6YSxYZ9lzRN/te6Ge5jT6eLYmJb+lx9ZqBbEmHvKgnp4fbCG55zd4pepnRkgZZQ2z23GPPJG2ec4nMv9DZzNyTTzyZbWQGiD8C7wRy7VGfW1H39Ne36JfLgKHXyhiXLMkhZvyRN/Vpo7506kV+c4NY5Y+DDZtC9lCuql9bDcwyabdf+IVfyDyk7ejYFfoMU8du4VeYX81md4466qgczF5oGLQYg0ceeSTPTvEa+CGHHPIDgx0YvD1zjCcUWeHHeLsaPMmsuKAcVZbycy0jzJEDZZjqGTyXIYOSD2lU4tlVPC6JyYQcTlzPlY9wRr10qjBXpNUSgjd8kCWkafXqlbnMckQQI2T20EMObccde1w76KCD2oEHHRCGa9isywgwSoMuU9rCBQvTuDEyPlthszAjt2Dh/CRQs2bOTsIlnTa3r0W726OzeL/9kyjxpxNCa4ZLO1k6NSOAQOUMxET9VJ2UIfJcflUXdBO32rDAv1ylq/adjKpfOjHc9NdfimhU/pW2/BCSkl33iNC2ICE1Q4Eo1awQssCYVxsiEww1wmPW446oB/V6xOFHZD1IIyzLGnUuT0Y9+EHqbJkJabKUZYapyjd20kLVjyvZ8q9wBPf222/P5VTL52aN9A9x5Ksc/h6yTeKfeuFnKTBJUcjTfvyUNQm1JTuzVEFk5GFWDblCuFatXJVvs9Elw0K2q34hzlMhC0mq2Z1cVgvSRr4WQIQcuGk2SN7C1VPWRzj1pCWUQx/NcodO8kDWbMYnQ5vR0bK0Pk8+gpaby0OuT7fAvPgbMFNW5Fm6XK6MvBAnetu8X3/P6rWjY4xOmDp2CwOXZZnjjjsujeYPO5AYmMZ4JjkGWLjmmmtyZsXsUr0ObhAUTi8yyohAkQ3+BsS6L5fGIwZWaTmQvvITx71BVT4FcYQVyXLPQNR9hYlX5Sz9GKFhUB+M5hj2cuSbQpEmomZ4mOdhNmfD+nb//fe1W265uV140YXtegcjhvGxYXXPPRcNJOnQQ/PwRASGcRsMWhCF0N33wXyo1SGMDKArC1RG0lLMlgl9N+d+mlAgDXsYjDRcod/2bUG6ggAlkZvR9txrz3bIoYe0gw8+qB12+GFtzz0WRX5zckPvgw8+kLqasVj+xPI2J4zcrNCJAZo6TR0NxKjay73yutJhXHf8OODHiatt3KtbV8/ScdrDleEzAybf6Y5DCJKYYUGAtINlMm9W8cu3vUKW/Upk5gnaE30rtAhiY0ZJnwp9su3i6l+oRpZ4rvmmG8RlwQLLcjckSd1338VZb3XAoytSoL55MPR5mnhgapAlfWjIe2cdkK8/ClOm6vvcznqi59R26WWX5uyLPVvZf7W3+ot/lQ9/JGaY0YqQqDPy+YmT5DrKI43/kBL9wMyOD/PyM+uIFMmbDH+juWQW5bHPi47zzQhpX7KiMyFtCE8kTz/l0cel46/uxbFUR65TxN3Lf6gHM4PDLBX5ZsvqbxSBAjori/1QObsYZcs9W5GfzehIlnoy8wbTo939OLAEfeedd0S6DTvGuKybKDd47ujohKljt7C8YS8LwuTXq4Hu+cAzDUIMnwG69hfYlMlY8JeuyAmjUUa3Bk8DXYXlMkOE8yvSUnHGBqfigHt58Tcwl2x5isMP+NeVH/kVBqVHXaUvGZ5hWhCJIk2uYcPamtWr28UXX5T7xm4OArJs2WNpAF/3uuPb8eGOOeao4Yv0UbZhBmCYuaAHw4QMhFYhc3puLEaalIwx9Bq2N6IUdXo8M9h+0VsGCQE5u7Rtu3INbmvIG2ol6jziz5wZRCMMEl+zLMjBvvstDuJ2SDv22GNydmv1mlXtrrvuzD5z1913hoF7qs0OXadPH4guvdVD6ht5V5t4rjrlD9qo4J6/ONVeWfZw6tMVWQP32gxRY2SRIE7dqGMzKrLybLaHXjmLEp55jEDIRjAHkqF9td/QJ7zCTyYgEtKmviFvWHZam8aXTgcdvCTayKzoBGlI0jgQBwn4qWB+5EtTjkx9Sl0pe/lVvVX/BTqvWrUyZ2OR56OPPjrDzHy5JqGotOInmZyes3HIhH/595N5moWK+gydkKJcogw9zUxmfUdfA+mREyhdat8RskRfZEgaZSULUdEXqg9UWkDqlUt9IvSILHJEL7NF0pMl3PEJSfRCnlm96lfaw8bvPBIh7pHn3Ei+bn1cHcgZpDDkyce+L39z9Nj/gP3aQw8+2O5eelfOVC055OAoj3ZRv+ptKHPHaxudMHXsFn6hWXZBlhjEGuB+VAyD0a5hsPU6uK/An3baabkkx3jwN8DV7I6Bkp9ryTMYVrxKI8xg68pVOnHBs3KVv7g5qIZhqfCSAcJKXuXHjcGfI7figzQ78zbbMyxj3Bkk4+qrr849FT6zccopp7Rz3nJOO+nkk9qxxxzTFu+7ODcTp9Fl5EKOMhrM/QrPN4MiD4aDAczXryNOlUGYvSaMVxq4kFFlzWvIQcAYd/UG0lYZ5BVZ5HOWO4woP2GMkjfq7GexNOhXumWUhx9+JNxD7fY7bg8CvD6Nn5lCMoby7+wHdS14JrvuxafrDn3jWmHAUCMA5FtqUQ/0ZWyzvuOf/NXNePP2QI6G/U0IwLDkhlAMm8L5F3FRH3Qy0+fKKO8g10FO7cGZN39O9l0b8ZcsOaTtH2R38+bBoEsjT/0JqlxZt1GeqhP3Va66Vp/xPC47f4afrvqPZaUDDjxgoqyDLHClH+JAjhklJIQutRRMx9QhnNk3p3XPnzc/00VmO/qWuJY85ZGUOjJCShDWejsQMbdcabYH+UGWLLtVHfh2HZ30O7AkuWrV8Okjm7+rjvRtBAmxTaIe9e3HFGJHvr8ds0lk6fMLgyyZ4aTf4nzbc2tu/CcH+RMP2bKk6F6YTeuHHnZoW3r30vbEk0+0E084cSjbRH13wtQBnTB17BaMxQUXXJAbrx38ZpB5PlCGYFcw+JuhsFfHJw1q4DLYlsEoEsNguIpjsC14LsPvHsSrOGSQV7KgZINrucLkuFD5GmArrjgGds/CK417eXJ0429m4Otf/0Yuez5w/wNtv/33yxm10049LQ0BQ2KmwzIbA0YGEovcSG/JqTa+5kzKRH044ZlOgAS4Z7TMjqTRCn961y97aTiEiYwiCaAc7reFkZWn9GYTcjNv3BexGJa4wpjGr36zYtzBBx2cJz9ff/2NQZ4eTj0YKfGrHoZ8d5Io+aWO8UyXqkd+UH7lz1B6k9L+KXUGQ9szsUjRtonN1xPLscoV6QYZoUcwKyQ8SeTWIOAhnyryqfqsvAERU99JBqIeyBaPLurYvr/ly58IXRa0gw9eEnnsbHOyqj/wk85VWuGuhSpnpRHmXltUXHFyFqhty72GiIL9fspRBC9nIkNfp2cPS5cDgcsyxz+broWTp7+RrVz0ti8IocjTuSNvdeqIAbN0iAtyiXx5A0690lfeZrHoLA9wVc+VzoyVfBBr+SJlC8LP+WAInLzkhvzqs8osvbbUZsie+neIpXzIcg4TwmPfncM49TvLiJb31IN483P2aaKfRZkRXSDbPid7BBFvBEr9STN16s5xpeO1i06YOnaLpUuX5qvklsbM9Biwnw/sSk4ZC29iXXTRRTn4+pwBGCCBcTZ4FiExEJLl2ZUBAXHKuOwc+AajUPGEFYSBMPeuBuHyL+NUMkoev/J3FcYYFcQr4kIPEI+Rv/76a3OAfvSRR9rxxx2fg7Tymplg5AABsfxFTpYjDI79HAZ6JkX5+dvQ6vXx9AsDw3Ay3nQpXYFxJZNxQ7DUuLeZGDyYNi1kRRxpxuUc6s1J1xt25OngwVzSCp1y71TkpX2KPDJOTllmwObNnZ/G7/LLL89lXqTCrOUOwx31DVX/8gNXrtoZhJeOyKO3+JSXq3IKY9zzjaxIhwjQLYTks7bVDpaf5C+3emlYuPskDuppon3dkzEj6pd8+liiG+u7eeumXBazEd6nPJYEYRJEfzqTCWRKX2XzXH5QfkA/efCrfN1XvtoF0bDn7/D4O12yZCCpiA6SrZ20l5mbmkGTHtGRB6KrHvJjuTZfR5hyIkyuCDkyqY9JtyAIb9aN/hzqZr8OnWguHEn1lPuicrZumJEyG6Sic/N36E1/4cqnb+RSaabzZl7oOKpnebtKU+3kGAHLdjnbGX06fziok/iHlJltpAMypO4t11kSzBkzekSa6rPKQMc50V8dlCutH4hDnjvJcsdrF8PI0tHxDECSHnrooRwIazB/MWDAQ9IMZDm4TxgaxtgAbCAdjOJgHA38pt1rgC24NyAaoMsocQZWMg3WwE9ceU3Ob5yX+MLEL2MnHcNtWajki5+GOOJUWvdg6YJxu+SSS9Kwvve9780PhJ566qkxSB+Yho2xk57By1e/EYIgJWabGBN6pY6Rt3hF/lzpU7qlEQpjlzpE9ognf/t3yohaFmFQSnf+0qsjBoUDsnJGJdIgbfRgXBk9G2RrkyyDVYSMjmaafDH+9a9/fTvhhBNy2fGyyy5r3/nOd1IWVH1y7ulY/hz9yap2oaN2teHcrBJjV2VPQxzhyJI9V5lHlD2NcdwjCHTMMkZ8Mxh51ZYpfehTZBVKh+ob2nu8SVx7iOOtLPWFNN10443ZdvQctxFIw1U/FGfcdkMdDzN6pQd/4C8vcVyVVduoA4c5OkJij0V7pH5IgT1FE0nzWV5mUeRPvva3TIU0qxekAoFZH2SE/GoTb90BYqX9kTTph71YO9uOHLN0ykOOGUWzOUgrUq8f59lNyj5B2vQ/emkA7eAeAUKaEBbplMcPBeGWRREg0L+rLvOzK/FPvuqp6pwOZsvyo8BRn2RZNlQPYBbKbNeBQZIOPeyw7J/GILI7OqDPMHXsFgYUU/3eyjIjMDYiPwqeSY6lG0tyjGwuS4VBgDImBtMy4gZF4J+DfwyaHIhXRsaAWvdgkOakcSW7DJZn92UAXLnKnyxgsKoc8qSTMDp5Lrnu+SmXV7+/+93vZhpvm5155hlt7332zjjKyXAzLsOv/sEYMYaMkJkgRoQxYNgYB3s5QBrIX+wTS0SMj/0Xis2AMTrCy0iRTS+zWX6FD2UeCFjmEQnppQx08daZNEgXAxsBuVRTyzdYibTIA10ZYssriKQzcMhEJOxxYsB8z+u6667LfDhyqz7ryr9QdU93DkHmp4+kTnHPn85pKIPAMYyhVpYZuWNsPdcSlHyyb4T8XEaK9PqN2SHtUfmBZ3ItaWkTQCIsEyVZZ8yjjpBaxvaBBx9sBy85JMq8X8bNpaYA+eTSkyudS/9y437vHqkQhw5VRs/Ig/pGwNWvby6SX0Si6rLammz14lRyG6RLB/HFAc/DJ1uGvxtkRzyy9D3k2FIe2L80LJVFeDj62Iie/Qux8eIBGVEGZMaSmHtLd+TpW/RJMq8fhbryl15fphP56k9a9a9c+pM9Vnm0Q8Shl5LmMnb0c2nE4+9Ktr6p7esQS30X+XUEhzb0N+zvRL8Ud8khSyLdTqLb8dpFJ0wdu4W9Ib6PZUCx6dugWKiBeFcwQD4TJqcdxzfwIxdvfetbc1CUp/BKU8SIASl9hI2NQ8kz8FZ6Lg3phL/B0aAIFacIlGeyXPm5Lx0qnBuM2sQzIxz/xLeZ2xs3DIvlkTuCKF111ZXt7qV3tzPPOCPfKjskBmMGy0CNCJFFjiWH3KcxZ5gNCpFpUJLshGEQJ3VlVOKaBn5kNLyibqkI/JInj/HzxhxD73VuxoixUBZGjLGU1mbnlBn5eaZ/GqyIl29PhdGJ4LxKx4iRvXGjQxIHgyl82EPjqIP4lT+N8bL8N9T/Hnsuavvvt2++XffkiifbZZd+P49QYLj23mevKCfiOtTB0AZDu6rXrNuoE/rom2ZVqt7oWW2Vcbarq2H2KLJO48/gunojMOsr/BnSgRyYuUSOhrYm1xUJHPcVBpvcgbSHXiGnyIm3sGD+vAXt5ltuyfo56sgjJ/QbZsnIJVN56QrVr+RXUFdkylc6MqQd6mToA8APSbHRXH7+Ti2Xmf1CpLzxZ6bN50yyfiINmfqn9uHkM/57stRlyUtd8dPXVNZ0S5uhO32iiTLvIe1AAvVlfU5/dC8ze41SbsSXb5LtkEWXoY8NxMh+I9+4yyXR6HfKiQxn3UZ902FYOhyWELPNoo4sOea+pPiPHj6/YvZpW5B0pH2LNt2ODA71L6q/BX978vWjwjKd2Sz1ZuO4vynnnp144klB5ObtaKeO1y52Wr6OjqeBQcV+E8TF4PjDwoAzdpNR/t4wsmfKJnODoYF2TFDc08PVAM0ZcDnhZFT8MjgVPoZ4lUYcaQymDJmBvFCyKv44zc764G9f0eYYgH03y5+WWQLyNrXvX3Jx++Sn/r6tfWp1O+usM9sRR5phWZDGgNE1INNVvgZqBtngn28azRo+pGtgZ3y86WYZinEzc0OPnLmIMHoBY87D21mhfhqRXEKbOSxXMCIMDBnKnPUZRkUeGzasi+dpodPskGv508yT8g4GRzUiYIwMo7V+/ca2du26NEj8w86loZoxw5EOftUPs0/SzwpjW3XjtW4nNb/+9ae1t7/9bSFjTfvmN7/RLrn4olB9CK9lvmo7xlZZPeuT9RV95a7l0KpH/WiY8WEEJ/pB/Ks6YnQddVD1hGRu2OBEavtahpkT+egPoJ4QHHWmjRAUdUk/OiCzZCOcM6ZHPcf9Pnvvk/vTNmxcH3KQkUGmvgTqvfobvYXxK3JGnjKJ46oM/Cp9XbO/apdoj/wkS5RXPeVMywSRttwk9kDitw99J+oGkZozEVccxMSsENKz58I92vaQiXjJw747hGKqv6twZmLoZZYNcVUvZNELWaKHOlI25UJKEHZl4OiIuFiic9in8ukTyFqVx1KZdrSU5swv7TNn9tzwo9f2tnr12hib5saPC7q0tnjxvlHnj2U8RNGM6exZlhK95Tc7ZDj9XT+I9o6+67BQZUHSzQqaZaSnt1MPOvig9vnPfS7Los7Kdbw2MYwcHR3PAAOrk4MN4PmL8QWCQR0MzAyTfMuIGJS5wSANy2bgKryuaTgCSQAifg1uwg3G0pY/v5LrvuKUUSKLTvyl41fpJgP5YAjy0wzShRPXLM1ll1+W33ezF+wNr39DO+7YY4eZoojj1z9DYFktN7iGLoxVznJENvbbWBKlB+PEcCqbV/jF90udgWOkh2sYsrgiBkVw1aO2EzbU8fAJCgSFrvPmDaeAM3bK6F6tMVJcGusgBVUf4Fp1VwZeWv7qjx85/EqmGTSylBu0sbIhFSeedGJ+2FkdWbK85eZbkvCQh3hUXpWHpTzpS3a1oTB+lnboxBCqD4aX/lw0TNZPxeWnrRAh9+Soq0w/0Rc8070Ipnt1U5uHtRU3yLE3ZtivtNfee+Us2KOPPJqERPuSB9UftZN75QX5gzLJB8qP/DH4l8slwoiWp5AHmVVO6YU5CNXyG91zWTeuZtPUoTfDSlYSv2g7V2RG3SP19DPb5MeTfpKznRHPCwDqiTxniVkO1C/JMlbwpxfSnz8Eoh20B2IiPeLvpQBxfZKF3JUrV0XY8L06coYZ0vibDTKuPCWXfvq2tuZPRxu1vTDieAtp1WnpB+QIl0b+9fcsD+XcZ5/FWSeW+cgiR1/79re/nWk7XtvohKljtzCQGGRsTjb4vFBgPAxgPrHhbRp7pgoGtTIWBkaoZ2H8yh/4FdwzUsLdj2WBgZCrOPQQxyDLr2S553Y1cFpC8C8E5/KBDdW+w+br8Xfcfkd74xvf2D7ykY/kZ0wYC0ZrbQzmjIc8DdhJeuLeLJA8LGMwBHXYpDAGxxKJmSCkyx6SNPgRnzFOYqMsDCa9Qt+caZgwDuIybAsXLEzjl6QqyptkKeSCuJaYBmMXRCSXxYIsxr+qQ3KF05PcMkjy8kyea9Wt+zRSaZCDjEQZzQow1kgN4+04hQ984APt2OOOzTckbw7ShDzmxt8J3ehPNmNaupDvKu9angPtaHYpdZiYpVJ/udQYxpeM0rvkVx9EjDjGWX6gzJVnGfPoXRmfvzKoK+nKgHs7ECGmm/bMpbtIV2nG5SAfhEmvrHSvfCuecGHZPto+nt3rS8OMWtTv7Pg7DfWc+m2js3Z26rr8kBF1hID7e7ZJXTuTowzCLKfJ2yxa9o3QgUx1Z8ZUHHvX6OM8JXCvvoqw218nnjrX1qA+cklUn4syepHBR6H1Y59ZQTb1D7NM5JFhloocdUiP6s/CXdVV9QH1oUxmwvjrc3RCfvgLT93DTxr1UkRVHfpbyDEu6k45fGoIKbY0Z4uA9PLpeG2iE6aO3cIAMbxhMicHmhcCBusyBGYdajArw8RYGGSHQXwwJMBPOCe9eMIN8pXGAFmyXQ26Fd89WVwNvJzBU1jFBVfyKo30hdQhjCVDIY5ZBad1I37OVDKDstdeeyfJsaRRuvreVi5jxT9EJt9mCtmWTRioNBQxgDtsEJQh08e/2hROV/chdGJz7bABmZ5lZMRTPkDY7KmSP6NgiU8cRAxBQeaESWt5hdG1gZfx0R5Af67yHwzycJ5O1ZM6Eu7Z1bN7xIHhtcxjiSUPJIx0uQS055650R/BvPbaa9qFF17U1j41GL/SH3n35pk8sgzhgGxytH21X7UnMmt/WekkjJNGeunUtbC6rzhVZvfiSpPEz/KivMmIekx94pqfg4l2JseMi305dNZu4oxB18qvylJO3CoTZL4T8aD88xpdlO7Ip/pyThJSiCginO61Y/5dKFPoqK8gMvqDvWLIFllcEtWsw4FwIlAlw9445VR+ZEL9rHhyxQ4SigDR1cecxfM5Hfkis8hk9u8gsmZPERSf3vE3oP09y58uCHyegB+EK78DF2kVVB1Uf1NH2iX3Ik38/VZe4mXbhy5mjTxzyJO+7Ios+UFozNE/nOEkHz84pDND+K5z35UyHV0hLzKr7jteW+ibvjt2C9Ped911Vw5ITp82aBhMuGdCxXm2cQ34DIsN3wzn6aefngPwjkF8wrDKvwYs6cqAuBfHtQZSKCMojH8NouPw8hsbLH6ccCCj0nE1cA73w2wLA3LtNde2q66+KgbhNe2t55zT9j9g/xjQFyZBADVBD3k4jNJAzQjxt3xRZ93YfyE/g/xg6Pxyt69jQk6EITXAAKZ+YfjoYY8HGaWzMriqz2EPSeQWwrIOIg7DSgZDIZ22lq90yJh4Zpmi9ClHXVb9iF/1AdKm3AlUfKSvNpnrU0M+jO8QVzyGlFEWz8bdu+68s90ZfY9BtSyMCDJuBx54YBq9ypuTb+VdzkbzWk6ULwKAzEinJeyfEU+9lJ4g3L2wMrxD+qGcJvDMvpAhXc3ExFPO0pSMeGx33HFHhvlcydQIU5aqX2lLNjfoNfRJeVU/yTwjrvYcO3FK7/z47m23tWOPPTbfZlWXORMZ+civ+gJZ7hFXde8ZgdYf5FWv3ZM5XUEDScgn0iJlkXsSpE1Rf8gIMhhC8+BIcfQjpBjkY1YJQSI/Z/jiGVnx7IeBfVRV98qE5Llqb3EROH0bCbPBO+s69NFuVWfiKWf5V38Qrj5TTuTBuR+IYs2URj8PvZA2f8PKIG0tzzmbzNlMDgQ1NoF8uI7XDnaOah0dT4M0sjHg+OVloHohkINsDF4GMvDrb3watHyFjQkPx08YR8caDMXhZ9Ar2RWfK7l1D1XGGnTlxdVU/jgtf9fKk1uxckW7/PIr8vyWlStWtve9971tSQyw4uar/xNjq1/HNk+TSzcG3DKEfBkh8ZGX3PgdacRBjORtGaSIDMNF31yKs1QXz6BcZIkjLd1qc7kw+TOOrsgaP/LFI4N8flUuswvIGn3oQGbVHZnqYZyfvKpugF8+R3qGkBGsOPqWdmJwc69LPCNT9o4ceeQR7dx3nZv5ONzz5ptvzmVhswni0ZUjRz3QVTtXntIhDHRPsqluQ2+6y4vOWecRjwxX6enNkb3ToE7uc8PsiTphxJVLmty7NvqH/B104EG5V8fenJIxrl/lV2bwLEwc9VT9Wv7ux3rQTbkZfnqYGVQuG7BrA7U2VlfaWRr9aWi7YelVvgjCooWLclkMQVAucl2zb4VDUshAdvxdQunlakla2Z3Mry/KyxueyNCO+o1/Zn6QKbojvNIue2xZtn8Su/g7oVvJ1wb6GJA3EOnh0zr1Y8E9Jz19qm4962f8qh3JLL35qR/xlQnZo2/+nQTZVFc2iS/aY1E7+eSTU569iPpMx2sTnTB17BZp0GLgqusLBYOqmSxG0Rf5DWoGQgNdLQe5F6+ccCjDWcbUvYGQDM/uDbAGS/fChXFg8OTIG/uBcpeBrjjkuK887OPwsVy/8Mk+561vzVe4/Wq1X8hsEQMkLF/jDpnk+OeXtjzc51LV9sg/isWwJCGKvJxzY6AmswyBowGQLTNOfn1bhpGHX/SlZ7kyEq6WO+jNGNozIi3ZSQAibuYd6cXj1Lm05GS6kOFeHC71iroVpo7E5a+sXOYpjZmVMIiMnmsZONcsS1zTUE/sO6r9NG9585tT9re+9a08D4xRBzLlXX1CnMqXfiB95h331f7iZ73EP37y4scVMk3EIYtM5SKLy/uo98rT0hSYGZQuSp1pkShG1z4dpAbZLZmQcSZ0lwdZnL6QciMvVzLpCO6h+mOlMfuHqOTSU+i2Zs3a7AdkZ96hG13oaH+PZVBAEMjRHvqYk9nVi1kV/cLyIt0QC8t3NugjiyBff2/Kh+BbtqU7XbUjHREObzIqK1iCrnFEuL9rfdnfgzQIZu5xi3bRNrkEGLoNB2EGGYxny9xm0LQ9OdV2yoXs5A+CgLryt1V9U30Kd6VDkX1lWBky+Tvws87fEmYGWH0iaV5IUBfCOl6b6ISpY7cw4Bks/Do0+I4H/R8axs/tIYMLGIjsvXn88Ufj1/FwAGEZuCFsp/GXt0GZvwGzBmgQnxOnBkiDKYhnkB4PeDXA1gApT35AZhrwGGy9Eh6X+BW9MQz+lHRh7kKfLW39hqfa1Vdf0y79/qU5+Nu4vM/ee6c8RgtBYgQQBW8dMTgMjEEbIeHPINBhWM4Z9lxIV7ooK2c/E3/1YG8MY61M8mH8lFE7lb7pQuTWbWbbNqTLs4lyxmF4o6pIh2UPS3Waxvk24uTJzhGRMQLyQZ2VIaRjGXJy1Fm1jXLwG4xYEJopM9LNmG5GK3LabggKojVtVhCq0KnZAB7yosk2bdqa8RaGsTr11JNS97vuur3dc89dYXjXhF4OOxyWT0A7yVPe6l6+w4xFkODQz716Fybupk3ettoYbYIkW8pDFcxCIK/IDiK6LcOHZxvGLT9Fxem2IcfsG6Mvj6FvDXtwkMNqz/zYbTznRuRoe/LJnDZ96EdTpzl400zQQBSBjsqRMqJMZHsG5RIOVZYZyrN+Q5s5NUhUKDcj/GcgwNG2U+gTTjqyEARtS54ZuJzpiX6ojUhF9Gq5Cgkz8yR/Tl9JQhh60s0smA3aSIW62HPPvVIvfRvhQszs/TGzpw7yCAZtEP/oQi8gN9spwvNvJtJ7JgdJ0jfNMNm7hryIX/mTow/629P3zJrl30/EoXPFUVfq17XKUnW55557ZJn193Xrnsp85SdM3/Y39Oa3vKnde9/SdsWVl4XGxpn4+42/K2XqeG2gE6aO3cLAmYNZDDaM8QsF+0AMYsiGT2kY9ORdhoIONegVMTLgMRilYxlu8cjKwS7CDaQGzhoApSOn0rg3AFdeBX7ikOWtnsw/jIj4ZoDg0UcfaTfddGM7/fWntzee8caJX90x2EaY+AZfThq/wmsDLbKDoDEezp0xC0BPbJJBi4z9l/GUgTFJeRHH5lQy16yeeBU99KYXMsVfPGX0qxz5kR8DJp6wLFMYS1RAOegwlCfuKB7hDNBQr0O+ZKgHdQLqjeERRj/3DBfZ4Fl/UUZlzzoM3ehVcaTlyCSPg2oj8PkNSyZnnHFGbv71Rf4777gj+kcYwsiXMZQ/yEc7Q8lDlFyzfqLMBftViiDTlU7iJIGNsDzAU5mz/SJdhNsDRS9LqsiAMjG0MPSdoTxIBnm59yb+2Xe1fPnyQc+o33yr0jXS8CNTf089owzSCst6j3v+nqtOaglPOFjS0neqz9NPPdgjtqOM0e+UUz72USmn9lcn3lAjU97qk47S6nNmXehgtjQReQ51vD37rTZVxzZ7+ywLQqSd9Of8nl3UhSVJOhaREdcBlauiXvRZ+fm7AToib8rjXh+GR+LvrOqVDHVKV/cc2crKjyz3gBAKV75sk4k6rPpSFn3BjxblN9MKZrIscyqbfuGFDEeCfP+SS9ryJ5bn31NUwY426Hj14wetQ0fHLmCQ8avOL0WD1AsBA5VBftnjj6dRN2AyJAajMiauBkPGlXM/GPRhqWgwWDshrXg5CEY4AiBuGSTpOfdlqOThnl8ZcfcMDggXj5Gh0z333tMuv+zyfBvq7DedvePTMX6x56/lMDJIEjnOrLEkggwxKnQyYDNAfs0uWrQw/XMQjn+D4QtSg+xEHP/GdZBGJoiEcg8zQ940Cj3Dn77DUtHwK99SG0Ngky850mR5wyiq7zLGfl0PhnYwMMJraUx8eTNi4nDqRlq6Vv2A2ZTBMA91X/mRU3XJjywylc9z5eO+lmv0PX7HHHNMe8fb355nUF155ZXtissvj3wH8koPMqpu+NHFUhUiqF7lK17mF//Eq1kQbwrWEQr8h0MpozxRLmVThpqBy6VLRjwiyMNSlntLidIw8OpNXgLsJ9I2tQla3xBG93wLDZGL+vYKPSMvf+GcclT5EBN/F4PcgRAqc8aLe+211157Znry1OEQzz656UlQlAPpcC4T3ZEo5dJeltYQBP02Z4yibTjhZFvyLcKz9977ZD+110yf9vcgTSL8zaKGaukn/kB0EO8giFFm+XoDbtjwP/RNxCT/RiZItXTqUrnBZmvxqt9w7umG/KgLafRLfupH3akPba/ds/xRx+pR3yqCZVzzg0hbZB3E1WxTpov+L51aP/Cgg7K+H7j/gexX7qs9Ol796ISpY7cwEPmFb9BwD8/3IEGeAc5r5gawIjcgX4Ojgc99waBaxsTASTfXsSEXB6QVVxxOHuIYYCGNaPiTL534nuXrOqQdDACCYSD3uZivfPkr+Qv5zDPPzF/VBlGvnHslmhzLVkZa97WhFPz6NijLL/dvhIFhtBiMMu5geUJeaoJBzhmBMCx+EcuL4aYb+QZ2v+JzOS2eES0GHnFiULPuFCKQxiNclV/8zDd+ZSc1i3SMvjempGHwyBGPg6p7zr2ZljJc5PNjuBg8V37qtepUe2sfzn0ZtUpPXzK42jx88JIl7W1ve1t+Rf7upUvb5UGavFkprnRjFPlQb8g4w68sGS/+ywM0o2IzP+kjTdZb5IPU2Nei3shBqtS3OkZ49QN6i2+/DUOu3rQP3Ye8oo4ivY/gekBc1OuOckUYYuaZjshD9VeoOqo6Fg9hca3+WXVqtmiYwRra3jKgvwP38kCCyCdPGRB0baUs+liIj7w3t7Vr1mZZ6J5EJ8pm35J8tBu9kQ3p9El56xfCydZfsj9EWYs0qhfxzNKpev1Bf7K/yAykvVH6uOU2+VHGvXOiyCArSakMNVLA5nL6qI+qE67qKftM9CekW7i+qTzVn8CVzvQQt35sZB+If8LkmX0oZDrTa7/4YXTIoYe0L3/lyzkDVf2l47WBTpg6dgsDs4GhpsnBIDEe3H9UGJD86l21clXbf7/9Mj/yDWryKmcQ42fQrcGqrpwwA6l7AyQZFcYVlEncCgfPNdgyNiAe8OPAr2dvwfk4sIHfp07MLK2OAVT9+LSCPR708OsbWTDwMkz0VgbT+4wkQ5OGMQy0OJbyGCyDNKjzOnKA3zBbMCy/MFrSgzR5UGA8OztJmar+GB1xOXmnf8ixLERmla02BqtP+qgLS1PqMZeyQj+6ela2MpLilVFheKTnPIsjTHxxlb/arnSvet2hb1xLT64M4kDahzN3TjjhhHbUUUe2W2+9pT3wwANDfYTMklEO0RnKMjVnSLQd/bMsmevO/OWhK8hb/alLREP7hXeSgdVrnLo+hIsvrZkT91B/K/TRh/jrIwje6tWrMl3GCX8khxZmVNRv9NAd6V1hkD+0ZdWpsJJTzrKZ9h2IwfDWoWMYUseIi3BIQ55y6HtIE7JS7aPt1LH6GQhgCxI/EA3xtVsu/U30f8cEIOW5lEWfIIPetssl5Iifs3dBhJAW9aFetUW2b1z32nOvLDM5fgDIW6byc/7RQOSGv1s6yjfJXEAfKKJcP+akU0cgL3lWfwBldF/9UFwy+NuMLm/LvGa/wN+ZWUEzT/LWD7WlH0G2DCy9Z+kO2R2vDXTC1PGsYFnEeTLeYiuUwXs+YFB8PH4hr4tBiWMEcrCPAclA6FoDvgEP3IsHZeQ8G6BroDVg1n2lrXgGTM4zKI/4BtNxfq6WTgzy7g3Ed919V+5jcFaU84Lsd7FkYJYmjVsYL5tVDbQ10+ENpLyPuAyxAVg4wyldLhFMEBSzTWYpLA/Ud774pS4hm0FiJMt4m3WiN8dQp/GIeGYThEPOaClv/FMu5c19LHFPH0RPffBXP4yFX9XpH7KUQXjNGpErLr8yutUn1LN6KFmIn/as52pT4Ff1XHLF4chQT6Fy1hFiIb6zrV7/+tfnkuSFF16Yb1ZmfUbbSFfy5Mkx7MMbhsMr9sLoqB6rn6lvJLJmaZL8TQkSNuHveTC6W1OGt6nUX80sQc5CRfsiDvph1ls8L1myJGcPkQD5hbgshxlA9Vs6li7lqi6AvtKI456O4mSaiIcYH3rooc2nbtzb5yYcacy/iZBhz5HyqX8y1sdz9rPoM8i9/MoJR8C091Av8lUXOz+Xor71aaQRsYec2Yw4QxtOzaVA9aER5asv02Vo67iJ4iFXSXBChnq2REYnhEvfyr+RaLsiQdl2kT/UbLRndcLJW1uJC9V2WVdRJ+RwiJdns0v0MTMnT9+2A/WdS9oRZ+GChVmugw8+OJ635+G09JRfx2sDvaU7nhUMigZ9ny2pTa4GqecLObjGv+XLH8838gx0ZSgMVlADk3zdi+NeuLilj4GvBs5KOwzegzww4EINuuCeP2egFJ+MSmtWgGzflbryiivbaaed1o4+6ugwRvaVDGSMQRfXIK+eGEsGgaGQPSOABPGkmwHYL3TERpyaTfFL3iCfhil08Z0tugx7PibezpqHGA6GfvjlPRgkeiBAWZYY/Av8xvWSZwZFlQ1+ZqiCTIQ+jG+WO/6lvuGUi7GVjuERnjLjWT7qflxfwC91CEevMlZVz6Wr+NWm7pXbVfuKQzf9z4yIOEgHi8to+TaffvmNb3xjx2zBWJYyqT+y0mhGvQpL0jiqo9y/FP+GdKF8OOn1AyTWvXwHfSZIZUSjG5CjbGSa4UGE1VvqEuXN9NF3zO54Rl4RC2VA2pCI2ksmDVmupcO4n4Iw8kDeZmkQeKRafKd96xN0UW7l13dyxpIeE/0MQck+GvAs/1r+pAMCYS8Pf+G1HCfP/GsL/ZAGdYTY64vKTkbWZUTZe6+9Mv/aL8W/6j2XCXPWaZgRkpc20xb6viW7/DuPenLOWZVbem2tfuqHhDJVOygzoiecH9k2nosjHKSva84CByxJynN5xJVWv6enYxZAXLPJp5x8cp4N5gPQJa/j1Y9OmDqeFcye+A6Uwcdg9HwPEgY8BMMvuzIa8nJfMxtgEDNwCy8jIqzuGTS6jeNznl0ZE2mh8gD+7l3lJ4yTbojPgGxuF19yUbv/vvva69/whnbIIYeFf+SzfTAA4pbBLsPFcMiXgTZYD3oNH0NlcaRjAMQVZnD2i1waMxIMxSpEIIwI2Qwy+WZ/yMvloojDEDtTiZEe6sceJJvTyfcrm2FS3tBkGyMSMjZ6RVzdMZiIiJmGMPbhpOfvq/tTp9ocH/nPGN52o1sZmyIQrvSSP/ATr9pFOTduNKNm03AY1Fn24Khj+vmAq+VGSz/qavBbt25tGOOVIdMRC8MMmvJrH6QO+TnggP3aCSccH/U8s339619rDz30QBhl9andgpRF+TdH+ZV33VPqyPJiGPuoA1+pV2b15Mv2yisejqletFn1GYRGWyo3cpt1y9BvRvgQIAQuChp9QR0hIow+MmB2hu4M9nh2DhEAxhwZi2gJdSdPdVf1p8yRQ5Zpax6BwDeeo65c9Q/9wAnoSE0eORFpzPqoe2VxNbtktsbfsHyQd2H0QYTk6159KysiE8Eha3hzDXH1LK3690JD6hi6DzOSoTfyHfF5qr8kNPFPueeHXpbQEH31iNjJVx2Jq97MdCFL6lHdyEv/NssN06bZUxftMGNo4wUL56Xf3LnD24D6It3JozOdwA+bmTOV30ynH1zq3DgSbRx+RdjstVog/9BRemQpdQynnH5U7Bc/6vzQue766zOdOivX8erFYFU6OnYDAxBCY8A0EHHPJ8gzQB500EH5xlkaphjoKh/XGpAM/IyBgZp/Gedy/Plxfi3yK4MuLUNVhqjS1EAnz8qXPuIP1y15dMDNN9+UM2A+c+HzI5ZljKIGUb+s6W1QZTCkrQFbngiOgX/BgvnhNyNneBhieHLFkxk2GNrQI/SzX8Kv94EczExDJJ8Mi3bImamQzVjm192jTmp5z3Ig42iPiqIx7BQbvgLvzKfhKsy+KLLFt4+p/PINM8Yv4nFmQ5TBhlt6uVdeJIkxVMbJZJOe/Nw7BJHRQoDWPrUm6zQPKQz/qWG0LHWZEcl9RxHGqNpzpL60h1mgbJupYQiVP4yjpabDjzisHX3UkTkDdv43vxF6WXZCBJ15ZRZrKIsyqHdlUsapQXTUSfmJVy4SZBkYzSSpUXZ1H70FX8h04Z1yq57SLwLF1b+qr+l764MouVrGsTdKuLD8rlrUu+fqb1yh+qX68xHdyCrCzb6GX9SZDPkhHj6N4m8nCUPUqb5fxAhx0jfogcRpLzNS+tDQV4eZHzrQywyYtjMDhBBYmtUGq1Z5m2x4EWF4wSBIZ+QnnYoxI6Pf2jAvLzNKyoDM50zp6lUZV55Ktucee2Z5ydFnhckH+GkbuppdtA9LWyivejNTtscei1J3fYWjqx930ugrxqySn/vXgiQhSGRwLQjT1m1m2SY2z8d13sSeqxwDQqbyqg9Ejn5e6rCE53Dd2269dfjRoh0m9O549UKX6eh4RhgMDDpveMMbcjBmLGtwEDZ2Pwrk8eBDD6acNCZxNYgb7Mb5gbgGL2HPBHHELVmeOShZ/EEe/MofxBXuPBnn/9jw+aY3vSmJUJ1sjDQMehiIwwBP/IpHdCylmSlSHgaXMXWPJERGQ37xjwFhdBEoSzZ+4YvHaCEQNLJ0UwYwiVPkwchYDql9MJZXtNGqMEwIDTKjDOTIq8ooLjn1LI640gqTTxrO8FdGhsd1h05Rp67CxXVfefBjeMjipClIp+4USHmiytL4qiO/4JEH+ZjN4Y8AMPxZvyFbPIZL2UP5IY8w0ocffnjEXZyExCvfyiUvV2mrjXa21UCOpaevuphcP5x7cRhNbaAs2gOEVR5lbLl8+y4wP4geMqFe/BBQHoY32zaMfJL+qAOGXl8p4lSyCvKRr6MPzERl/Ub5lbva8Kk1a1OGupVeP/N3Ki9EV/9QAHKVRRzEQtlCgJ6bREp85GRY7h1mmuSxZu3atnrNmkg3PfueGaF10ScQC6dhK5eXDrL8IQdZzfJFn6ZvCEsiYqO3zff0DxF5NeOUxGSC5OS+snDKrD68hVj9zt+JPNUrwuYNtxCdfQdxkV5frTOd+GV9RCRXfx/yT6IYzrP6yf4SeruaEdN2SYTDyVM/reVBRFD/NMtkw/6tt92aumc5O17V6ISp41nBYHPfffcNA0YYYgMQ93yBLDMPfrWZejdw8WOQxgMRP89jgzZGhZeTvvwNauRKJ8x9QbjnNMDhKl5dyVHu448/Po2uV7AN3JUfw+JXqo3YmT7+DZuphwMqDeQMT+5VEcbfQJ4EaljOC8/UJc9emggHZ93UXo/aG1NlI1+beMuHfvTlz5gynnQc9B32hNUzkCFfrsosL89k5FtLAbqoA6grg1TxOHFcS7bn2nxPdsVLwyxeGFcGXDg/+nHhkeUu4wWuOYsVchhGxpVRNJOkPIiIpZTTTzs9ZyweevihHQcjqvc0wqF3GsxwWdcB+bkXTo57Tn5FbEOdHUY/Z8CibQb/ob+4F6ZvVT3wr7phZJUfKUZQ6G12D8EQzzV1DP0cM1A6VX25L11VmFka8dVdEotIhwDY9M74e870dI18ESwzMFHFO/QWj2xvumkv4dpjKOPQl83MuTdDSSZSjASBtPwQQ/5ka2tK5d9BkCD1h+AIq6VM9+pBuR24ys9VWyMwyuOIjtQhdNe316zxg2M42kK56C9PeQwzbcPfknqcEzr4G6BL1aP9RuBevek/xhczumachvqI9o974eRlWbLdh3aAiDYhYzhOQvii+PtwyK56zDYJ0L3j1YtOmDp2C4MId9ZZZ+XZQ96UMzCUcRi7MYSP3TNB+KI99sjZAyDfoGzAcm+wqgFTPvxqcGKsDJTlV2kK0vGrtOSO9RG3wlwNfuLUsyWor5/39TAAs5JQeNsql84iPElPxPErtJbXyMuN3VEdESXjMg7i17UMdBoRegcJYAwNxPafMAB+3corSYJyhRGsfGujt82+yMRTTw2fLqnlkfpsCeNQv36lK9A75cTgr24YiapfDoRLpz7KqRcOPEtLhvIkeYlnhpJfEoUJWal/hClDzqLJK/4hduJ5pieDKR7ZKkd8xCfTRpgyC5OOURaunpRHmc956zk5w3TH7Xfksol0QA/38qCbsnmWDsjkP9Slk62jPSKvuMnyMpQMOz0rrTIx3p71v8rL8tVQXi4IQMhSJ7VpXCtI436YYRrqSP7SqUegGz/h7uljZodc5SCzwizJeS6SWkSMfkiPclV55c2RncvAcSUPabB0Jp66tsRZ5Tezp2+S63ltzi5FXcUPBJvtvZGnbuSnj+YVEYu/C+VE3tXRsEw8fBDYOUZkydebsYicmVd+SKWy+AajJT4zZMqVMoNcGSfUh1k0pEpZLVnSXX78xVcujswodOqVdTdrWNLlr/zV/nTQQIgfZBztqU6ir+V+upDP34Gkjrfw9nC1mTyrfrmOVxc6YerYLXIAjoHcIGfWwaFyBsfnEwYXm5udv+KXnfyGgXNioIzBzDUHvoD7MtJ04c+PjmXMDILCKtwzlL/4nLice2E1iHLI0gUXXNDuf+D+dvab35wEhDExc1CywSDMgA+mb3jVmSHPvSMTg7GDLYvwiGv5DgzIMbymcYIkFVFuOpltYsAtLTgTx2nMg9GYORw5EMaH3jbLZx7z5iaZUAa61eAuT3E9c+pNfHUlzD09PUvLKTtDSw5dxGPExJM/vzLAnl3pSZa8xmlcEQflNJuAkGT9ySvkgTQIgfL5ZIZ+wHohlNJbmlFNw2zCnKw/5RZGlmWUgw86OPvQbbffliSCrqWHctPNszqTJvWK57Ffkkf1F0649tC+woal053tTh5UPwXECiJptnMSujDEDmLM19ij7Jai5MnwD/UxbOR3lSe51Ub05u95IMTRZlF2afnb22VDub4pvvTiIhBmtfQhektT5VBGn0OhmzoqsmV5zZKy+/w7iP4gD31I7+aXS3pRHqQmT+UPUgNkcUVaEBppxEWWss/oX5EfHbQ33dVdzhaFnzJpX2X0YwCBqiWxysvMkDLag5X7tNRf/JOHGSVlJ7P6ceoc5ZZm3cQ+qOyLE/Ws/PZH1d4nf7NkavciguLo29qM3tXfHWIpv6VLl2YdyKvj1YtOmDp2CwODQdNbcg5sMzgbJJ5PkM/VgG/g8VzgX84AVoZaPIMZv5rZEObZfcnwLO7YX3oDYMlRpiIQNfBZhjQYOvNn//32D39GfjhbBsghgw7SzI3BlGEyADMaZjkQADIZAORIPsPSyrBExBjZpCtOGo8wuAyAQZ0M8sk2w2VA96tbvtKtXLUylyKQCcsqwg3oQCfxOGVGvMC+D8YFDPzqpOqjnDzVhXDxOX4cYzpu/5LvSpZ0RbxqxobMKFIa/Pr17xlBQozEtTTJX73Qj8vnIBfKmkQh4iuX2RqGXV1b8mHgkDH1e/xxxycxveqqq3fklfkH6KdM5Mmz5Ok7wtwXJKm6QdpA24sjXaVXdvAs7o76jH/aUw+Ujp82zVmy0F0YXaRnnKUHba7eXIWL55kcOslzh+yQaYZHux922GFJyPTR4W9ha+7HIYfOWUeIVsTVJsKTCAWpc+iquqo2NusToiPdUCa60ZkeSaqqTaKd/YhCNqrPmJ3Rv80gLXtsWfadmiUFS6nZTyJ/V4ej0tdneZQp8/aDIsrpNX99JkodxKt+zAzHBOy9195Zd/ojMmPmbdjTtPOHVf398LP3yNtv1XfUDSiTHyL6m7zN1kpHP0u8foD4O6OT/V2IuD2NyKHZ4CWHHJJ756DK2PHqRCdMHc8KBi+DgV+xBhMDVQ1KzxYGrR1uwq9Qg9zwlf/hF3wNwAZ7hqOMR8kQP41HOPHpZOAVn6twcSseeeLWszg5eIe/V9u3eRV9s9OgN7YNG9e3O++6ox1xxGHtyCOOjF+zC+LXLkM7LJ3Z9C2et25ylmjCGMk7Z6DCSDDmnoHujKU8LWf4iC5yIH9+jJAy0MuvaoOz+7lz5w2GNuIwUEiGMuVbQ2EkzCCQZdaGXoznMIOjXodX9IfX9G3cduyA+gqFpmgFb/0w3sOZPV619gveHpGFC73abb/RjDAoQdIibtZPxHHgouUJ18xn4pX3JJTxLB695EWmIwOUJQ9qDHKonGYv6pf+cO7UQN7WTMwu5acxQka+1RbGSt2ZgWCIlV+b5ezDRJkRU3Xtm3MOF7zpxhvbo48+HGXU/shP6BxtSjf6esuMXsq9bj0yGWQn/JRPfTKUYIaEXO2JqMhHvak/r6e7V0+OTch89ClxlSvSMfRmwnxiBAFg1JWfobZPB5AP+SiXfl9911W/4SxLiaMeQo3UQ7ltvvadx33337/NiDpkspHn+QsXtFnIc8hJ+dFfLUXlYaTxt6QvuSLb/iKrb/obSkIWelOPrKFcEz9Uom30QR9FJhd50Bfp65kMPw7I3nufvTONjdWRxXCidsguYu9HgA/22jNl9kjbkoMAIUX6h/TkqRvwdycfS3WuSciyjwzESP4FeRivSi+H4+p/+lm1qzTKmsvokYWySyeOdpLeci8Z/IyBZnulpYO9TLfffnt76KGHfiDvjlcf/LV3dDwjDGCFk08+uT388MPt/vvvn/B5ekg3ds8EA42B6cEHHwoj9oOzSZz0Bjb3MDYqObDGs3tG1GDMGLkHacQdx3FvwHOVr/CNyEQYVUafu/GG69tdQZiWHHJwHiWAKDmnx6BaryMjEsPm0Z06kWfZEnbsX4p/eVZSxGUkzQQwUgyzX7L52Y745Ss9g8tI0NPA7XVxutpfIr046oYxyTL5F2VEKhgP5A05oN9AOMxGDKQIqSvdtyRBivDwQrCcSSPutu2WraLugzwEd8262BZtwkUrhL4O82MQgwhOcQAmMmQ51J4br5x7k2xzkMbhTUJGkdyhHYeZFnWSeQXhC8/ID+EYlqSUD9SjZ/WLTA5vqkXaidk48sqomtVAcLQ7/+OOO64dcOAB7fIrLov++iCtU8+ZIQexQZQGQocsD3WQ50KFHkhQEeA0mBlvmGkp4jqQU33H/rAhzfwFQWyVPerJDAY9zBxFpSWBNqOx51575t4XsrWtvwrlyj1CAbKTHEX9gDrQxvwQFrroP+oRwSEfyZi3YH6bGjpY4lKf66Mvrw0isyX0mZmzTdpkIKhkqT99SnpE1RKyOqaT2af8YHDkkzOJcd1xH9AvvVqffz8hr/p9vtkYYVVPTrbX/80AqS8zRVl3EV8+llXlRQ4/e6bqB0a+pRd5+TtRR9rcW4IezEipvzU5++RsJ6eOD0eIqDd5AH2NBcqLgDkDyhEV1S7i8idLPDO36mnPvfbKcqgjeSJFoC3oRrE6JwoRtq+xvoOn7B2vXnTC1PGsYBDiDDIGIIOFAeT5Ank2cy45ZEkO+gYeg1iFGcAMgGVEa2AyqHFgsIMcsCMNf/cVXjLoT457Zap4fnEyBAZlA/5NN9/UFu+zuB1+2OFZbgZHXMQnXwEPg+WXtfhkyTMNaaDehmMkESFIYhP//KI2U2LgJc+AnYZEueKfX7KOBfBrfDA480L+ppxhSCM3MZgjG9kWyhjyhTEwOTMVMsWxadxAnoN5xLEkIa+cqVD2iJf1FXonSZiQyzDLO+svtR/qFyFxrb0vjE856QdjPEFw45+4dV8zE6CMtXeHsbQcYhbBrMmKlZYZ5wwzKaE0IkiX7G8KEQ55UOfkZt+ZMfRLRIVMBs0X9RH72++4I/NUf6lnyEWuqKKPZTlC3mBIEWkbwYf+R5/cm5Nl3LknRqXIO2ddoq2RDRCW7RP1ivhGlKxrJ0LrC46ZQI6rH4tHf/UvD/A87sviqkN65KzXRJ0hHd4yu+fee4ajAIKYSDts1ta3ojzRZ5VD26i6J5Y/kXLVvXKrL/HEUT56wvLHl2efyb/3KJ8CIyTSZJ+LPqKelJef+jBLZNM++PtASPU/s67k5GxlyJKX8siDUsqtPzgg0mdd3Cu/5W0zcmaw9DvL2/7eipCqm2ybaAPlrraUF5ny0Bb09ZxLvNGX1Key+PuS1t+ktvTjxfLi2pyxmhptL+2QjzaTh1kobQauCJ+T5uV12223pd7il+t4daETpo7dov74DT5mWix5eI35+YQBx1LBIw8/Mhi+GPgMxgYpYeXSaAYMaDUoGiDHg1MN6sLEoTcnjsF4MA4TRj38DHquRcgYEAO1Qfp1r3tdzur4pckY5NJRGBvLEWSSY/Ae8puaSx70efKJYcM0o0ZuARHJwZkRiV/NoJx+WWe5GYIoMxlmZvy6RSScYcMoMVKMuEHeoI9YICHKZQC38ZlOCAb9LG0pG4MsjrwQBuSlCI5f2+qZkVMn6k+aJEYhk76MprhIgF/ljJi4QK48yZAu/pfP3qCSll96R/gwOxIyLbFF/px0ZLvPcoc8QF4ZMGGcMG2V9RbyhMtDeuWTl3uG0MyDs5m01QNBmhALZaeLsshLXWcZw2hmeaNeGXVlBvWhLmrjc9YF8hZp1D8d1KWyMtzuB/I6kCDkOftwXEXXj8hLA29mLSBuEvVw1V+rX2Zbhau6JSfJS4SLgwDoH8uWPZ79h77aRbnAXiH56gP6QwjNPoPYmBHRLx0waf/SwgULRR1mhaJ89vTkbGXo6oPY/OSX7RTltKRsSRYh0yf1e4SDvkidZUI/FOwb0j/9PdgPpJwy0v/zbdOoc39z/la035NPPJHkF3myV8hy4PA3MWzq1ubC9QMvX9BHPn5sadP6O1dfCCq9axYL0UKItdXy5cuHvxl1Ge1K53yRIJ71M2W3ZJn7nSKtPVlDmw6EVts+9tiyzLPGDx+Brr+dch2vLnTC1PGskYYhnEGR0Xy+B4Q81yUGfgOogc/gZXByzUFrwnh4HhsWzr3wsV+lhSQPEW4AhTJC/P2SlieDxGAatL/zne/kGzfHv+743HuCtIifb/mEHIYc+TFgM4A2wiIEmXcM7vVr3LMB2BX41XepvLHjderBCA8Dfc1UlUH2y5auDAvdGaU8CJOhSWOwLo2N5Q6zVgwhQ5EkL54zTZAHBsrSSxpviLyUneEejGl6pvEovau+gU7KqoyMNn8zbcBQs4LkyEtc6pPDQA7lCa+JNmOcGBnxs33iv2H2ZnqWIYlTGEVGKXWUPvRi6NRrkpSoc2Uqg2nmQbmRpVwiC1kHHXRge/e73531Y6ap+gggt4DQqgMylTnbM8K0ifiIgP0tiCK9EWckAYTTTTlBGygOUi2s+jBZZJPFEHvOPqHSFV+igPp0T4es60ij/VyrrdSL/OSr/L6ujwgcsuSQKNuwx0ga7ZPkZAIlA0mQt2vOPMY16zLajT7q3LOlRrKATsiKuiND3wNkhlx56YvkZv3FM1IrLoKDRFqKlE64vUr6OT3Vv9k5aWo5ec1E//U3gGzxk7cZNOdVIYUpJ9LSWb/yd6E+OHLVkb1G5HI5uxQ65w+IvNu5lC9+XfWV1WtWp+7qQd76inyRLbNm6lUfmB990d+iPmlG85ZbbskXRLLNo8xcx6sLnTB17BY1oBt4DFxve9vbcmCofTrPFuTscBN+BX5Ih1fZa7CpwdhgZgAbD0Du+VecyfHGcQsVbmAsUlZwz8giMQ8++GBu4hzeihsG6xycc8Ac0pIlPiNt8DTAI5G5cTRgADXgMvQK69e0PBAcAzIDlW+HhUtdwxmskbAkQAb+iK9cCIr9F8b5YQAfjLBPQyBwSYIivTBpyZMXQ0pXZEAZ3BvsazYrDVLoKB8yVzy5IomHuEkaQg4jTZYrnRkiBi/lmGlLArc+Z9zoLF4uT4WuZDNU0nmTz3KMWcTILGXLN21XuPBK410kdDBqw1InvRFHs2f21pgRQ7b0F2FFNJAJfhNJUxffVlu8eHG78cYbJ5ZShzpSX/QFswf8lQeRYNjlr34zjs4a8bUFQqGd1YNnimc9xr0+krMvIV//4OinrJylMv1EvSAbIFx5khBG2h1tH/2MTmQom78L7SAeHZAEuPXWW4a60d+izRYtXJTERVp+rsrtIM884yryQiiVL+s59Er9I222aZA6eapf6dWhcjlFXbxHH3s0/w4cKQBmuMwiVTsIy7xzeS1+NKjXIE9mtegpf1B/tcRMlj7ujTNltRSXesW9WabcUB7lVu+es09GPuKoK7NdOfMW+ukvMPT/IS/x1AmQo459UoWu+oyy2jNltlIZhnoIQhl1YY/Sk08+MRDKqHe6aEey65BXsi3LabNc+o78Ol6d6ISp4znBYGqwMBhyzxcMfAZBRsogatAxaA1GahiADMSeDaRlkDioeJ7HV7q6r3Cyy5UflzL9uo6rk6IZ7pyij38MjTCEhGGgB4NDhsGS7oyPX9EGWfnxG0jN8HqyQXfH6/SBlBH3fom7piGJvBnt1Cni1NffDeCWV/jnbE4YcHmQwVDQgyEY6mv4tlcZwTTQUU7+rvSqmaDBONvwPMy85C/5cKm7fxO6IoYDUZuaaZBExNBsC+MFwuUvjXNskAJyMizyjoDMV33kG08pfyAD7vkjV8gYI0Z3dUEuAqaM6g+h1abaQT3kr/swztpHHdYyZz5HPOTw2OOOy/KSrz4YVSRJfPWLdNJBXZJLz5qBEu45SWmAXkBv0A5e6/clfT6lW7ook6s8+TO2Pg2iLIy8WUV1q10gDXj0px3PUWdFahzpkXUV95y81O/SpfcksXGfbaps0ZZJ7KMP64Nm7czCqXfLZ+SQy/C7l1Z7mfVD9nLmKUiL2U8yBlK8IcthWU3FZ9uGHvqP9lG3+nkRZOHk0zX7RZRN/eo/RUj1WXWhHyShiUIp+zCTE20Q4f6elF24ukxCGvrYvA3y0V9yj1HUsVklxEp9C5Of+gB/E/V3kXWQJGvYWK5tkPqsj8iHjn7YuOpjZJCd8iMv/dLxKupKHo500A7XXHNN9omOVyc6Yep4TjCgeMXWIGNweL5gQLTPZMHChTkQe5YXGHQNpGnUw5VBMTAJqwFqHL+uBt4iF8IrbskzsPKXH2fp5rprr8u9Sz7TkkYnBnSGjfOqO6Pk1+jyGDDzA6QxeCY5ioGWfPLUD6PEYJsNsHF78b77hsHZI5fzDLS5xDBBdhhlBCkH5vj169BBhod+Bm5yhxmZoUzAiCNTZDMk8vfrXFz5y9tgnr/8Iy6jWXWhbsgmj76MBOLh174w5VFOBlA+0tXsgfyVbVgu8abUoBPnOYRO6DgYeOkZyNKZcSY/gtJIAsP0AySLjvFP/uqdEVXWyDL0HvRhxLMOwvCZCRC+k1AO/UK9HLD//lRqt992exI8dWNWTHzPiEBeo7ww1M2wxEQP7UBW6Y5I53O47BtRZvkjYOqSgR10mXhJIu4ffujh1BPZZNC1d51xJA0ig+wNMgcyro4hSUS0FWLiyuCrX7LMFjHihx52aKaxlKYfILTi0lk/I4te3jhEbPQFBImO4qlLcbQf3ewPcoJ2Hk6pPkOOuP4e6Di0w87+YxZK+aotxEFkhCEjyoZAqgt60iFdyNDGdMlyhp9+pj0Qk+oTysSJozxIoNkmb7YpK/nqWlzl1JbVT7MNJ2RITyezqfTzt6v91a0+YQxCLJN0hS759xP65yxY6K5tcjk+yiIfbaDsdJKf2emhfoKaqaSOVxU6Yep4TjAIGPCQJstW9h0YKNIwTgz2Y/e0mBhLxGDcyFi8eJ/26COPTsiyudvyGsNrYDUl7pf/YKQqL0jDEM9klAGgJ7+apQJhdS+teP9/9v4DcK/iuhP+RxSBKAIV1ABRRO8dAzbNYMc9sROnOHHKxs7uJtlsdrMlm93E/+z75t19E/vdJE5xirGxHVccF9zpiN57k4QASaiAJDqi6X8+Z35HPNaKYrAXI+756ere596ZM2fOzD3ne8/Mnev3s3yeaXcuXJh8GEEGVcSDA/EpCA7cZHCTfxliX94XKcCHs1SeaBQAlNGk+JO35pYAGM4xxK4zxvEz8xvakJ/cJtmW8RetKWeW9Y7NsIlrgAQHZtijwBUegBcQw5hLi7KOCSQCMEYZnC59OOeat4E4HsMreT7Iuk3amkMTcQGqyG/4QvSHrOpkKI286Ywin+MOCPpQVzqOKJ7syqpr0hZIASA5QWXh480qTks7VNSE7PalG3zVueZ/cfYAgXSiDUlRiCd/Q2A33HhD8tauHLs8QKU+ktGmaDv8umzl8Lrs2cZRDtn1V20HwHLs8tO3c+Rynsz4y4c4WSDF8GABVw5cXZRTw3+WdHj0sYeiSFFAw7uRP/r8Zpt38KnNeyTp8Zy4fOeCO3Oto4wcxZ+6ceQAadYnZFZn5QOlAKXzZN1+u+0TTKcM0Wc7MOy6BCLy3glA8WT8fizq45tpcdgeB/gej/4WfMjc+10HP/qu4T/8gB1RJpEY5a0brop/+rtj7e23ts8IV/CzKCwZqb7ahM5FcJWHP1nJB+Sos7dI6f2JJwJ8PepTKe5RH82O+2yNNba88dYnaKub4V39MX8DV9Gu5PXARrf9fos+FYCbrA8+4CUQ0TbtPy5A6uRoP+B7+9hHX9xkbdtxp5lZ/mOPPZztZxto46IBMA30AxEjwgCbG8LgM2blYLuDeXHEbvLdHA7nIa8JrI4fCkfPYJWDdY7hrKfbckJFlcbGACKGOHnEuXSAwR+POi4eZFcfexNHAZnpM6a3vffaOwzes3OoCKyccnA21+jAMcPKOSVYiTpxWpXO0yiHkuWPgRxDDfKnw4l8nB2nqyzgzFwnToJGc6gg/tSHcxn7L8uuOjL4HDGjT2+cgPksohjSpLwBelwDcpQrUsIruU4GgLHIJGcO1ZM3WclRcz7okC44QXqkJ2WrHz1y1jVBNx1nlJt6ij/XgBNyYkoHCbDG2tckYXkAngInoj2uy6ccDsqEfPJ3vXfAXm1E/+okj/I4yDlzds+hszvuuKM76aCMDMoWaag09RPHWYe4ID89iRD6TYcoozQhn59kp6tcUyr0Q3aRGTrWBilXEF3Rpd8AXEWLkv8YX7/1E9GMLkeUG3/qq97rdBfySGPo2Mr706fPWAdaAXaf80i5oj54qo92z3stfgMa2ocsHgi0AwBsaQJ51MFbZ3SiTu4Le6CLpCIt9Ev2BC0ATrRVzgELAIqvc9obP/3FdXoHgrWHB4+uQ0PefTmC7AvBN1f0jrZxDRBUZw8L5kwqk1zuIzoSLcQHGKsFOV2voe6ZM2amjOa+IdfVnSxkwofc6gOck3XithNT19VGrjtPPnv61DekV4bfkyZt36YFGAZKDc/Sl22gjYsGwDTQD0SMGCPhSdmaLWeffXYaBud/UAPBTzDO5TA4UUNeHCDDw8kyUAxXGvwwYtKz2lVeARbpGE2GD2jyuxxe7Rk8efxm5BhPe2nxETEziXavAEsJeOIvnViULR3ggzhpJFTPmHICnnrJb8NPOa6pB/nN9aA3vxlj/KSpPD69oB6cQwKNqKNJ0tJxhuQAVkRKKqqBl2Mgj4PgPKTvdeIku0PMOSxRf06oJhajrt8w/sGHc1c+/TrvyT3lDV2RyTVRGbpw3RM+Z14y4E3/nvINn6mbc9Jm+igfb/w4Xu2EP/kANfUjd5xM8KatlMlZS1dDHuk8Q3/0Ve2hHckmj7Ky7eI4gUm0hQ6z+267J/9rrrkm0ymz6pdzVmKvXwE66ugc4FoLf3L86kfvka332/jDQ3s5R64EecEbPw41dRqb+nHOgJ68QEdGLyOd4d3eNr0M/MitTDIX6EDSOF6xfHm+lWV+z5QpkxMA6PfuHXIZrtIvev/qPMiunSvKog0MKdOZdqND7UlekUZ1E6WsfoUX/ScYi+OcO6YPB++ULc6pk9/VR9QHP+2nPNHJBDxxT+iHZFInQ8kiqeomvTT4ZxQrwKI+jLey9XVvQ/puomgU2dRf3cggTUZXo2znlFPLKATzkHlt6p98+XASvJQpSlWRMrIqF2917u3e+4u6KU85fjuvL+6z7z4Z9bvj9jtSB6WXgTYeGlp0oB+IGAjGhdPz/ag0nmHw0kGGcUEMSG3O269PYRLZrjAqPVKDfGJg6dJlaewYG/wyb/yTRp48jmujZaxzyMGrHBUD55zftZfWMV4l6zqDFzwYO0Z5ovk/kZ/snEgay/hjcJ1TZ+vVAHdq5g02/AxbiWKQg5FlVJFrnuyVzRgrHz+8gaB0BLEXmeBwOYSUOww252qIgIPDr572yWyuCGOvvsjwKMOdTif+DLPVhHX8cuJuOI+qv3PKo09lemMPoKJow1ucuHI85durX0YRYsNfPuAGfw5GpICu8ovucQxIkkU9y3Eq13m6UA/OrHirr1Wr5ZUu5QwZABBRpmcdZo+m0CFQSKeE1hacu7KATHmVn4AneE2bNi31qYyMskV5OpRjvPJf8FMvoAVgBYK0Oz0i5UXyBM2cs/SGkeJgXZ1yuCnSJggMGWRQZ8NAzqkPyrKiHGk4695Pom3jTzvRlzR4dr49ogE8+C2P9ZK0v/ppN5RyhdzOAeqG+/DKLc7Rj3brwDlKC2HJB0iZN6SfFECgP8BCG8qvXOcTlCUo6YCH3l2ng7w/3BOhI23pNx7AmCiyvuLTIsqga5Gtam9DeOQ3VCg9ftqszwXs7Whzj6qDYXEk+klum/KUoW50Y3mN7O/Bj16taWZpAvecKB6Q5B4TOVR/QEsfkQewc6zdAFAEiAOAzlf7ROXThijPva/PJEAbaKOiATAN9AMRI4IYDZ9J8ZRrEUuGw1ZUv0fPPReFrUljyxAyXlbMZXx4HcZHxALh5Xca/tjI0g1jHzpAjLDzfjOcjmsDECpvycUQOs/4L16ypE3cbmKbusPUBD54M8DychwckrR4e/IFHAAYDonht5eHE7Qvx8R5MbAcgXTqCfzU/C/OgaEVGcHbXhp5TOjGi5NM5xukjgWCPJknKAi+VaZIhrLoLx1/OAayqnPpAa/SoTI5anuv5SsXWPA7h4dCR/UEP9qm/s86abfIbw/YkNkw3oRwhGTlXMlm/gwH33U1Fq0LOQzDGHIRpUvnH9c5R7Ilz2hz4EadOeGUH2CJa+qXeo5y4QV6EjWQFh+OUD05PnrwzbVFixdnW6YOAcaoA53hG4lzb9NunCfZgc/eV8wZ69EedSBn9tWgdToN2aRH3uqjN4BDft+4k6bAtLzSe/UeqWtGUskRdSJD6jvk5dDzd/wZjjN0teuuuySQTF1FfTNCG+UUcLQvx20ukYiivt7bo8/3Uza9k8UE8uyroVvlAFjZhilzgG06DdABtIoWOb/d9tunnsm5/aTtx3Tfgak+lLxCbvK4R4AVQEd57jO6kAevaTtMWzeHTxSoKNsk2irbJcoB8MlOHucA/HwAiXzqud12IUeUvXzF8qyf/q+OyrGSvDqph/5NLnUuAPjggwGoo0+ou0gknaiLaQj0KVqlTuRFxUv/wscE/263vn/qwECvfhoA00AviRi7Mvq+6M9plyN9qcQwTZo0OY0PXmVE2SUGF9mPGiJGUZoeSejDFbY6xzHUNTxrn/wjL6dhS0d6zz1psBk+gJDDUhaH74+j5BTJV6tJm0ejDHwRJ+rjsXSTa7qEAefs0oCGgbd5agYelGNIwdO98+RhsAEpACTndkTazBNlVRkMNOOvjnku9nhyGBxHB5jdkduk4TTpQTr1Uqb8nBeHI13pxarMZOGwAEPRFcAh1zgK4hy73lvWgcOnFw4tr0fd8QZ+DTf1ibx9jR7ARtoEW5FP3UTP6I3Oq0/lp2DC0dG1dOm81TccWa1dJa9zhuccq0MHDjpMn8eWLRe/yTZ7l9mp23nz5mU0hV4AHvWkA1QvFDzbnmPRmfgjcwENW7ZJOOwcBos02gUwK1nTkQcf+uBEvSjB8eKNj7aIArMu+Gkz/TuH+OIXkEg3eJGRrjl3slgHzbA4AOZc6iP0vXLlqow8RpLUM7CrLOXqM/SZ0aCod9UrwUTwIIO2Bfjde8C+9iIHWYEt+QB69cqIZuj8/vvvSz0Q2ksb5AFa9GU60Mfy7dIoW17lSd/rHKDysf7WoHwPxL1jcndKFmWph76a/OMYmeSvbP3D0gf4Aqjqp829Zbp82bKsn3l8Bap8lsbxdvFQpM/2uWnP5NAfskBt6U/EU/RJn/c5Gbp2D6mvfprlxzVlIHOYuo76HCcPC7aBNi7qVmGggX4AYvAZhte//vU5J+PGG29cF65+OeQ7UgxPApAwVpxADlHEXpkMkX387MY+Ns6tHKfjcnzIsbwMnU2anr87Kb+LJ/nN55izx5x0GIx8pWWwM13IJLzvHKcmfF98GXPnGdM+BDUhHUOcTNDAATDS6YyDj2UDOFhGmS4dc5Z4pYMKZ5wUfNUPLw7M9QQZIUc6EFuUYW/4Jef8pMOPE66NEWDHwHPoCRbCIdhzwvSEr6iBOuQwS1yvoTFOThTIsbku5JWOfjg1+emBgxZZUk6BILL6xEvXEWDXJ6pXVIle5KUXexEKvL3arb70aQgFWMUvh3RCv2RD8nHUVFDAkyNEwCNZ9SF7DnGnHXdqd999V046ds4GaNB/zvWRN0TVRs5xymRXDr1KX31Tm6gnfeX5dLJdB+pF1/LRfeo0eCcYCH6l14nxkOAY4e+4X+/9Qp3TMYee8+2wcMrqSX4TvvWp7Ktj6UVupPF2JRAiwhKqSRChT3lrktN3UrqKfFkYs9pO30nwG3rQttlno27yqJdzAINv9Ym21Fwm/NQHD5OsC0xbu0k+PBIc6W9Rhnoq34KVCbjjvKFUbZzD3XE/4JUvH0Td8n6JdMBa9sWQEaDzsdy8H0I+oEt+w5/KBNSBfUOp+lIN4VYfJHcfjuvLDmwf8gNglv9QhgnchnLXgfGxvkUu9w+Z9UX2A3/9S/RvdeSzDbRx0QCYBnpB4hzS4QUxNmlAw3AwTgzPkiVL2k033ZTpXEOu14ZcG908wT6z9umwwGORg0jnzZxtt9k++C0Px2+uBwfrbSnO2VwiQwVez3/26XSdIY3fNrwYsZJzdHO+jYvz+TX+J2Pv7RwLMD7Sbrn1puDb109ikEUDPGmaXwFIcTZ4MLJC9wx+L9MihGsyAiAcr1wyWWjS8dKlS9NgZ/6oM1JXQwGMtLoYUmGQGfdaFO/SSy9t3/rWt9onTvtE++xnP9e+fubX20UXXdTnYYSTpvdN1wbI2WSzNi4cy7YTtm7PBL9nwolsxrk9FXUOZ7tJOJG1ATyeeeKpdku00XlnndO+/s9faV/98pfaZz99envogZVtqy0D4I0PR7956LX1lZ3VIYcT448+uhMfm1MWVJG3cj6c1VMAUtRji9DFuKfXticM4cR5cvoNOPn4L0fIKcmPp7I4IM5V9EBEC9hIEDbWrtXXtglHmuviRBlEqbwEkIa8Ij4hcPDqc9uimNS5CdI77bxT6nrlqpWRzuRfnz6x+CAQYR6VYR7zdfpLAeqtzuYlaZfsq6FfTrL3h0gTf/jTRfbvsT//OH7gQpRil9l9rSS6I5P03oDDU9oe8ehbW8s5WztpYqQLYBj3woRxAcAeW9Puveue9mQAhD3n7JGgEFigUxvHnfxDDv19yuQpoTcvNTyVEVxLRURRKW8u1xA69xsw1D8NkdkAjhwGDhehTZ+JdhG5VL/H9L+ttsw6AEvuh3X9Isrs31Fck/1ZfxX1EZGlP4W5n/qQbZ/0XkCVDHmPBi9tRIfaz/2tP2j/jHqGQvRN4CvvteDtGHh7+GHrdhlGBsQBMP3F/Wn5CB+h7uAWb3qis+pDwJs2de9bY40s+pR6h4hxD4ucmtcY7RN25KmnySZ63demU9eM0EVdyuYMtHHRAJgGelFUBpExsJUDPfbYY/OJl4Gra4ixqDwbIvnTUQStM7ZhCDPqMfb05rprDFo6mriOr3K7s+lOa5SPzTnGznnyVH750mDLH8aSMXbeK/yMXj6xBwBioEV5vAXIMRqWQZ72g2mCKmXLm+VEGX7j52kfGOBUDRXtuOOOCTg41nzijrLVz5MxkofM9oATIKacT37y9Hbax0/LtxDPPuus9tWvfLWdc+456Xjx5txK5/Tf9dQnZ3NUZIjDSOPTEWtyGOof/+Ef28dP+3j71re/1b72ta+1u++6O8utSJB09MIZcWKG0qqsjN7EtT5EaK2nPrFenTgfLcj5cLJ00sGG/jIGOMLxOG9oCC9libyQ35wdIFCUBGg1L4tMAKg2zP6lHWJTBvCClygMmejfb8BEfcirzAKlAI1zjr1m7net9+Vc11UfFrP5TXkcfUWnyOFYVENafSx1BHQEEKC/7G+hL8ciac7Lc38ACLrUXhSlbsrJ/hvXpe/Dhz1K5nz21aDOq/c/5QKTixcvTgc9ecrk1JfoUfUFUS/AAODxYkbqN8oQvaIjDwHazQRyeqb3RwLwKEOfF83pQ5RPZ5TIPCn1pxPptSvQoY+oe+ou/uzpJIeqg5chPvw8cDjnQSPLzzlsvU9ITx4gDqlD9rlo1+qTysMfwKI77UjvgIm8orfSA27klF6d9Te/8aSrsglI2+gD5EsKvu576adNn5ZAUKSJDEBavowR92uInP0NGNTPRT71uWy/APHkEU2Tj25sA21cNACmgV6QOAIGDjFGfiNG3ScBjj766HbxxRfnk+YPQsUHbxtjt+++++Zq295YY/SUV04NiGL41idGkTG0x0cesjl2XjkMH0fB+FZ9DPMwasDLPfcsatNnzEhnkJNZw9F7qmVUy2Fw1N6ywZNj6pGYPkSAPKFWtCidgaEsBhwQiDTp8NUzHHmVnU5VnUIVQvrycwbkP/zww9sv/8ovt196/y+1f/Nv/k376Z/+6YwSLF22LIdkOFk8Skf0A6DkK+Hx1432E2nURasM6bzh9W9o7373u9t7fvo97f2//P50JpxrEblEKcy7mchhGv7iYKIMYIAOTD5G6SSBqQCcQCinQlealTyckIrRt9/0VmBTXdOhRFoy48Xx+I2BdHhLMyPahVx0B5By1gU4OD6kbQEEFMlSB8rzNqN2lMeEftE+kQzz7pSJT/Vp6ZFjkZuKKgFpQJ0/aejRHBdyqwdniZf2TZ2HMxXVAVToz1uDQMLsXXbJttYXOV379QlIVBf81vXZqJC6khO4ue/++9oec+bk/ZGRoShHPzPcRF5l6bdZr5BRHdXHCwxkFHkzvyyHG+NPf9eX9VOARf21J57K1/7eiNXf8AempAEe8twmm6auDDt6WQCAoyu6EZ0RFfQ734aL/PqC+shDHuc1fAcdfc0xvIAkMuvrol76Mf0DY+YmAXsZAQp56Ipu9T97wJMOC4CqB7n9Vnc6TUA+ph9pQ8Rc6Tv7cJwnXy0dgodhYveAe15epPy8B0N3+itdLrl3Sdov20AbFw2AaaAXRQwMYigd1+a3j1BydgsXLkxjhcoJPRe5VteLVx0zRgwkYsilY9TKodn7zUgqB9Xv2srROC+NY4aaUSQro8woAjXeylGO4SLGnwHMJ9cwjpEsnYgnR4YbL2kZa8be0zgDy/kol6x42pPBUByHW6DJeY7GXCBP+erCmSiXXNb/oU9zOY459pgAo69rJ554Ytt7n73bvvvsm8DlrrsW5mdpbr31lnyj8I47bk/jbKKtb4vVm3XKBz5FJFw/5OBD2lFHHZkThfE84IAD0lmprwjUzTfd3K6+5upc+NAQB73ccsstOawIJJlobGVpjkya226/rV126WXtlpADWBLZ0P6A82WXXdauu+66dX1CvelBhIQjAiTUl47zST706Jg8HL408jiPH/61rEHqMjZRBfrLYbpw3PRoom1N1Aaa8jj+ODMO09IVE8PZatfe43pfzMjHWD/psj6TPIGRdMIhq2PAw5wbYEI65cuLH/kBhHwTMHgBBxz+qlWrE6jp7dJmlCTyZt+MetjrU+ThuPG2kaXakQyc9vIVK8LpB7AYA5zO6dfqXjLql9n34jzdk8WK9DWnCsAAqMiuL9Z9oV1FkYBVZYskkg8oALISxI7pw0OG9lQffD0EkEeUpSKQ8nrAADr8zv6tPeK+c3znnXcmuNRv6aP6hL37Ids/9CCiFD/WDdnRsc8F5dynuFb3urlM6ko+bSe/a0CSfOpOz2RIvcW9yda4BuDqY0A1mfLeD524Lp92sAdKnXesQQF4tsH1idta2DOA8ezZ2e62gTYu2vSP/uiPPjR2PNBAz0mMz4aIoTI3xArKfdXh6Wm0bIyKfDa/Uf0epTqHF6N8xRVXpGHbc8890yDiI385KVs62zhXgKj4I+ekSQM3JkNdzydrfPLJcrN8kma47wlgsc8++6Th41DyiVpkIMvtwIwDyKhTGNwcXguj7nwazzCieRx18CSa9Yk/BpRBdp2D58w4Gg4s5Ri7rj7pZEIuT9KXXHpJ22/f/douu8xOvogxXxLg5yMf/khOtL9iDJRcd931Ofn+3HPPzWUeDjhg/3QmvtD/sb/7WF676sqrsrz58xe07531vXAoj7YZ02fkJGvpPv6PH89FHX0+5Lbb7mi77rZrDlX+9V//dTrJqVN3aKd94rSMbsyaOat94xvfaF/84hfbdddfl99oE93xRXt1//rXv57XzWu78sor06l6JfupAAqACIDE29RbdxxVOu2gBJ4BkjhfbcTxGQajJ45QNI8TpHv9xSrogCyeGZGMNlJPPLIfRHr6ldZvQ4ILo705zNk7z86Jy+mko92loWttp336xOsAxJFPW+Kdb9GFPgANaXMSdfCXptop+cRv5ZL76quvyojSEUcckWDJOaQc/SL7jb4acuiT5Kn+6xpdIPG6jL5GG/jO4cTttwtQ1vsm/UlPB3nPhIz2mS/0VuXQqT+gJCM4Il3Bw/mUjUxBdOheicok4HkSIA4QiwKWET7nrIm2AEgAFUBKBnnJA2wAKzl3KtpRtekkAWDcR/o7vRboEiElEyCTDy7Bw0sMhvNEQYE8ctN1/6zL4zmsKyKrLAB5s83Gt2XLliVPctCBayWP/ukepQu8tBV59DOAy/Cge1t6fUt0UN+oCKc/y1awT/qi+0z/BY7Irf+af7jnXntl+tk775I6G2jjoGe9zEADvQRiFBgnzuCqq65KZ5+GJbYyvi+GpGfEGDmhfBEmQ0POM8IcnI0zYQRtrhXYqA1VWvw4i+LhuDuCmgflu12PplN1DbBgmDlGvPKpPxwNQ+2JFk/HiMO0MdYmsXIgJp0ysHSgDE5KmlxaIMjTqHMlsydZOvI0y0Ew0n4rQ4SLA3FeHgbbcIFoCycEpP7sz/5ce8c73pG/OVVDVxzqnXcuzN8AkLYx8VeEaNWqlQHAdmlHRludf/757ZOnfzJXJf7qV7+a9X7b29/WTjrppAQVhvA89QMjtwcYvuLyy3PpBStmA1xnn3V223+//dvb3/721MtnPvOZLPfKq65s55xzTjv++OPj2tsSRH36059OgJe9IXhyjhQrXwcDtZZRjyhxhNoMCKLHBAPhzOmt5ojZpKFHe/VE0nJwgKljSzy4DvjQs3QHHXxQvmKOh3ITlAVvJC3SDgXQlJEAWZ/LKFmfeyRtX0Kh5+Mw/eDoE/xE24kkitTNmjUz9QlcKCHTSzfWt+XlePXZ6ttkKNnIChxffvllCfI4d46e/uRXN+nNOwKIEriP1cm6Q3UvKBOAkcZq4OqXq28H6W/aXr/UB6VP3pEGkCFTttNYH1ZXMpjv41wN87mn5KnJ4MoU6SOrupHV5nyBKsO6CWhCB9kHAKygTB/3o7Tk0UdEYQ2LAkg5fDzWHwBX5bEf8tFHtbHfdO1ezHWnvLkIuLmvghfZ7luxIsvxW0QQfw9PZKErfRAw8gCl3bWZ8lM2ADDsRb41GOWLrNoG2rhoAEwDvSxiGBkpc5kYp5woHQaKk2GwXixJy6BxaAceeGACJryd99TMGHGEFQnAn9G2L8Muf53zWzq/7esYwPE0ncNkYbTtFyyYn29PMZo2hhuIco1xVH6CFgY7qsTQ9gXvJuQQRDBPoyoCxHh6M4pBZqQZfxNnDeExvuojDQfMANfQHidKZs7KOXk9yToH5Kk/o+y8TQTomGOOyXlODDS++++/fzofYOiee+7Jt+r2iidda8h4A3Hfffdr73jnO9qvf+ADOVkfoLriyisywnbSiSe1k08+uZ1w/Ak5VGeoTzlkAbQuC8B00IEHZRTONTx/4Rd+ob3j7e9oJ518Ur6+fsEF57cLL7ggh6J2CKBkmYjZs3fJJ/6zzz4rHQwgUREWdXMoYqAsUQpgyfBItXHqeUL/Pt8DPh8TfyJOdAGM0n21r7YzZMfZazvtLYqgvQ0Nua4NtZ/y6Eqf0d6uKQ9JY1hTW4gokJHsJa82BTKiyOyjuYVTB5AAEH0Yf7wfCUfL2dI9WbJvRRmuq4O+QPbsi/aRPyMaIQP56h5SF0OihiX32mvP4NNXuBbhUU5GiGKvH7oPc75N8FIHaQER9fPbdWUBC9oKEFe3BF3xl3OhQj5gQD8ls2MACE957PGhHmWqs/YGrPD1Bl7eJ1Fn/dyxdO4BunI95wpG/eQlH9nqvvAWo3uP/s3D0z7y5EsMUa7ImCUaROS0R9db16eypKcPx9kPQqeAXC44G+eUSU4AjwyAJh7mqmlHOjP86sFEeveYPigCro7k9Tv1qk6hO5E4Ohb9WrxoUW4DbVw0AKaBXhYxvBy6eTfG7q+99tpujMPYpCEfM/gvhhgshptRYow5fYYPD9dsBYDqt3Jsjp1nlP3u8y76vIWilHVzT5XeUuvDKp42u6Fdk0aUMSznxWkwxowgp40vA92BVq/bQ+bXpBEen69TM7YWWmTkEeO/Op7a5eUp8eRwGHD5GXhOh6N1Tn0zmhFpTIBVdoE8vNUPmMzhhpD78ZD7qaiHr8rvNHvntv2kSe32efPa9TfckA5mn333bUuXL8shlRmzZoZufbX+6XBW24YDeTyc4KORd/M2Ier+wIPhEENObwrRpydtdRO1AirNo1oWvJYtXZZr03Am9Guxz3SI0WYr7rsvV0z/7Oc+1/76b/6mffPb38rhqS2jLuqqXckuChMKSP6iRnSK6FWdOTdA0hBltkPopnQHPHJS2kh+1zKiEnWkU7rS/tqswK68ZAVkOT9RFm8/rVkjgmNSO3FEdUQjC+yTzzAigA3YmcdCSm/u+dZeH/JN8K3dowz5nOfoyeVtvIpKAHNkBsYBMPmyD0SfVw/t7ov6a9ca7gOGRFw3C5kt6Li63XnP3W36jjPbNiH7gw/16E3qLUTVnwuAqT/d0Qc5up569Meq3PmWWbQDIESP8hsuBmQAB/2u9JqRoZB/Qsi+ZcgHUj0dgNV+6wlbpT6Re0lbyYcPYKyO3kgzr0z/NwSHyKNRAF+RvhzSdH8E6XdAmyFx0U2gBF8PJqK3kS1lNMdPNKze4mM36HLbbbfOe3lygCnt6JgOn3nGEguTsx+4z0WBV65alSCHXHkfBgGa9KFcfXHpsqUdwMW9DeDRsU0fUg9y6pPO2bsX9OcZM2fkNtDGRQNgGuhlEQNX+5kzZ+ZTMaCTT6xj11A3ki9MnKl5UBwaR80YMsKcKJ7poMZ4MZDpLONcd1T99fUyfuVkXSMLXuY41LAInp5k779/Rdt++4k9XRh7gMT8FeWZkOp8RhuCP0dg0mk69ajrunk4IaN5PMo3/8VEZEAn3yCLcvGxlxe4SJcR/DgtBlwdPI3jISLBWeS8jaiLJ+HcR35gATjdfvtJAXJ8bsX8mqBwKuNC5l3n7NYefvThdsttt7ZpM6a3KTtMbTtaDZpj40jTiYbeAhhuEY7soajD42uebGvD8T4JhMReOYgDN0eHfPTn48TALBk4FTrglNWdfAlawrnM2WOP9ta3v62dfMob24knn9x+7n0/3153zDH5Rp76GRYxubjWxAFKOZyc0xI81NeWE7yjXHIAASZrZ4RmrJ1MEDfPTDuJHAAtjvHDBxgAQG1+46UdAU/t/tjjj4YsPqmhvvpQ7AIwxeU8njBBFEL0AgiWRhSp9yGemxz6a99bi2ps+DhAQoLq3jJZb1EHMhuWU0zeG3EAPOlrriHDxMreZFPDXXibCP5ou+Lyy9qEAAN777dv227y9m3riduYSZR9XBSOXuhPf6c3OstI3FjfATAyohZtBggoHyilf/owL4o+c75Y6JpeM3qKol6rA1w8GuBam20ZDx1bRr31A6DF6tx0rd7mKgEbgIRzAM3yANnuBW2jnclr7o8XB3LoK/LQSt5fIVtFuPQvus1X9SOvoWX6Fi0FhslnqLz6hHqvuG9F8IyHnGdMfBcdHh95nwgws0lGKNVbRE15uSBqyOeNPPekeuNFDuV54ACMPETZWxCzopea1r2Ajzz12wODoXE8bANtXDQApoFeFqWBi43BAnTMgyhD53wZjhcyHqPXgQ5DAECGt7s4PAYsncwY4V98GVcbw8UAMqrOS2+r6/U788eftJwIg81pkXfJknszjfPI06xjMnEAntKlBRTk9/QJ6OSwQJz3pE0OT7DycCoiGJPD2NMN482Z9cmkfdI3p8NgA0me/B1zhM5vGwDDkBaJlcWZ9LlN/UmcM/QbL4b8kEMOSaPuzTUTuufsPid1l85k+YreVpF33h13ZP2sS8QJZpQkdATg3bfivuQtLSAybdr0dtxxx0WeeTkfx5Dj6lWrs2zprIZsYcTddt01I09A0fFvOL79xE/8RDvxxBPCYa7ouhcNCZIvgYY/ji7K5+xLX6JP2o9zTTmi3vqUyI05IoYJ1Uc6ACiSJDhJIBJ10DaGU0qnyDFgpyx9YfKkybmmlQhDLuYY9dd29sqmZ21AJnvyk1ubO8bDeb/Vochx9v3Irx30HRO0TSCOU+mUM6/+EkDFcCRd4CUfGQ19ccDqlG8/hpwie4AN0CCdftInWj+VYMbwz+23394W3bOo3XX3XakjTl5URPSIDpHIU/afzUJP0Wa9T/YokGvSmz+nj96/cmXKpc9m1DFAHB0AP3SgfHUwh6nPDYp+G/ogG77qBcDcftvt+ULCHfPmtfnz5kebPJRLYwAYIlhWvU8KNQJA+ra60p163Lv03qyz+xQg015AmQcLYNR9YpV6ugCC5HOvJpCPurln9RMgy7mcBxc2JfUdfaXuP/09o6qhl+QZdacLkbIOzKNfxp866StsFHKv06G0u+22a7s3bIh7wDbQxkXDW3IDvSxK58AJx56BYKwuuOCCtvPOO2eUiGF1zfZiqZyTFcTNZ6onSOUgx5waJ4qcz6fUsfMAFkeWjm9Mtirfbw5LqB5o8fkCb3JZYNJ37ExSZgw5Ckab8+JkPY17ouXAGd1yOByMJ2vOPc9HHs5OujTaYZAZd8baOQ6ZAQYQGGXXOVOOlPMBZkSoTJzeb7/920477ZhP/oYtlGeOkOG2I488su0+Z/c0/uYhccqzdpyV0aC77r67LV+2vL37Pe9ed27xksXt8ssvTwDmrbgrI4/5T6ee+qZck+iqq69KsGSezLnnnZtvKO61917tkosvabvtvlsApte38887L6NbHOGtt9yak8DNWbv6qqvTOb/zne/M/YUXXpi6WLxocTvzG2fmW2l4eSuN8zIEqr20X4LQ4EcnQA4A4c0o7aedDB8CR9pE/QEY/UPb5jydSJPRHL+jzASH4fxE/rQ5PtpSfm2Jp3Itj6DMww4/LGWQB5/qO47NZ8ETb7zkVbY+1N8gi/6UYO6ZlM2xPf5AtTp621H/mTNnjwQGygpmCQ4wyP4UfSDPB/VhyA7s8QFE5s27I8HuoYcemvonhzbl9L2N6E1I66BZEuLsc85ucy+cm3163vx5GdkSqVSOPpbAMPj6razUTwB+kS+6BdDwWhGgeae4JyJLpI++90yfNwYwrI1z6kpXhuec12bqBUTR5QMPPtA+/7nPt09/6tNpD6695tp8e8zEdXlnzpy1Dijq36juUfUjk3b/wue/0L7zne8k8DdH0PCc89ouo2jui5AvXxCIdlInEaGcBxj3U3+Lr8/dSjAcf/J5uNGu7FV/gOkrz3tso4fehpum7gxnVr9hl9gj5XbQ2pfJQOTPe+jOBclXfzvyyKPz2kAbBw0RpoFeFpUjKedkMjBDYh0eBqZATjmdOrY9FzFIAJcnN1saxdjwxwNfjtFv5Jw8jC++nAmZEKNcDrY2vJxj2B8M/ig/yLlp/8wEgAPMhP1MAMCQ4sPpFnma5BBLLvnq6TtBWhh2G6diL9rASJNLOga/5gBxVmQpuSZuOzGdozkXZKFPT85k8haaRQsBIdEWaXffffeUU9QCqLMUQUaXIl0693BQb37zm9vhRxzRvvKVf86n/YMOOqi9653vCsc1o73pTW9KZ3LW2WflyuIiEu9617vSkSSQ3H5Sgt/Djzi8zZ8/P9+k83acuUrSq9NP/uRP5kTvY485tp1yyint1ltva9/85jczwmOi+RGHH5H1AwzM6QE45csIRjg5Os41e2Lj1LKdQ9+G7hD56JkTzPaXB7CIdPSTbRzp7LWNCfPKo1f6V5Yysy2jXhyyvlDfHaMn7Sm9CcUiZtV3yVJ9V+REm1Y/ApDspSUfmSutJRpEVOjO8BonGsUnWCcHXeRQXAgunw0PspXsD6xe3W688aZcDFI705e+wxkDJxnBuf32BE/eYBQ5mzlrZlsWgPmss85qf/nRj2aEj460hYgLQKAcQIVukPuJfFdcfkX7h3/4hwCUCxIIkW/C1hPaZuM3a1tvu1XbYqst2uY+B7J5n+OmrYA5kVgVyXsnwBKgY3kJdfFSwPve977s03TzmU9/JqNM2ooOUu9kivuPTPXwAWhazdywML3pAxkRi3rr695OreE7oAU4cp+ljgJAkU07msBvbSxp9B/59RFth7SnPPQvikmuBEFRpnZdufL+vG7KQQ5HB0kj0trz9GgiPuReN1TJhgy0UdEQYRroh0YMB+dgCGnRokVt7733TiCD0jiGo0OjDui5iFH3FpewvTfwEKCB5GXIlGdjMP1Whq3OO3aeM2DMOA18+3VRpDDM4XwuvfSSABAHtwlbciDhwEI0Ri+jS+G0GEUGuJ5MyYFvOlcTYrfqC1ky6AxngjTp4pjBNlwWBWb9ARvgSqSlnkw5L45bGoaZ4995551yiNOQAyOsjiJRE0MfJ5xwQs4BsQyCoQIf/DS0hg8jfdPNN+V1H0dGnrg5Im+/7bzTTu11r3td8jBBFV+Rwf322y8n7R988MHt1FNPzbZz3t5X/rcJhyNNRooi3W677ZaAbO999olyjmu77rJrtgtdeDPPb2/tnXjSibkSfFwMSUQAgIw+TKKi2S9Cv4b4tE/WP/RA/3RszpdojbTa0TXtQ2761J507Tyna1PGg+G0kTTSAiicLPLbZF5tpz4ZeYj8AIM2TV1H+SIL1WdTlji2OTbXqUcwNov8fveyyEkPeIjWmPfljUQrU+s30qejVofILzqin2T0JmQAIFLe4EE+w0633HJzO+yww7K96wFAnZUnauMtx2OiTd8VoPXYY/ubk3Pm7J7rY927dGk8xEx9drX0+ANQABtA2nwe5ZJDPzN8duVVVwX42q3tHu272aZxr40z529tu3/VyuboyaefjIbrwHPcM+MSOADv9Kj9zOOZe+GFCebyTcp3vCO/owdw06u1u8yrs86YYXcLuAIldA8wOxaBdc9a8+vAAPf0UXOG1N39ZkjM3Cy6JAsZzJ2y0OrWW3e7Y94SwISnFx4AbO2g/9Etfj1C5lxfqVy5Uc2UTRRVVE/57lt9UHn6kv7imn6rT7B17m8PiyJ77rnDDz8y5Rho46ABMA30QyOGl0MQHbJCtN+cK2PjGDm2vRABK56cOQ88OIpyJByGY3vn8Waw/C5wRA7nHMsjvXOOnfPEzzjefvttOT/EwopTp05jCzPCIuzvqbScqCdPDodzF8Gy57A8WTOYFfkoh1sgKecaiXDE0y/mjLU32bxuDoSRUV05fga3Fspj3NXLMI40eCJPudIpBy/DFGRgnIFUwynXXXtdghXrJJUD5hTMVdoxwNX0GdPjeEIOW3Gahn2m5uTwHTOiJDpFHuXSb0avYj8pzlvssuoCzAFNyn/ooYfDeUxS5XC8T+ZcphkhK71ypBwVfvjaOGf60ib51lY4cXxN6KVLzquvJt2jdRyU9FmXaIdoyNRHRm2izGp30Ru6ARLNrdKWQCRwKqoAdOonQJt232OPPVLf+Bnu0a6G40RsvOlYekf6Dn1Ir/8gbQ9sJIUcySsIKAFmpkyd0g4/7PAO6uKv6gusV5+hHw4fiR6JEqoXGW64/obka3X2XEE8ZCCjvkEWw6sL5i/IiCGgpG8AwupPdmujkcnQtvTmoJnndPkVl7cLL7gw5xLpR9rVEPg3v/XNdm/spTXcvNPOs0K3TyTIuerqq9tFF/cPQOsjjz/6eNt2620DjKwKYDMz9a8+2vnb3/l2Ar73/9L7s7+b2wSUaIcbb7gx18LS3/ShFQFKrr3u2pRJ/6U7UTL3mYim4ePDDj0s9U+P7ILolegdsEiPgJJrlrww/Gx19blzL8yFXC2q60GBbIbWfQLJw9jcuRe1iy+6KFe51wZWgScfQGveFP0o6/obrs/I3cSxKQYeRnpf2KI9aq5WtB29i6YtvHNhu3PhwgTsynrDG07Idh1o46ABMA30QyNGpPaezixWyKEyJgVy0Ch4ei7yJOqJ0RMeZ8DBMsSoeOFTPBlD50evFdBQjmOOwe9nz5kY+mQ+ER566CHhpPvnUURtOGjOED9PofkXeTgBe+c5JcYd+KiyDBkUMLMBFvkkHs6Y81aPfJoPo+yNJeBBIvk5dECNY/UboOHsRAPyNfyx83iZsyECZJ4Nh6ocSzp873vfSwD2lre+JXUPhCiLrORSvrpx2BnpijJSFwGcKvJBXmk5QHpMEDCma3oGToAKOpBGGb7vBaiQL9shnJchEjwThMRv5eLndx0rVwVcp4s+TGVeUteJeV3mx6iioRTOMQFXyAHw5mrtURdpXTOJO4fxoh71mRR1FFGQX+RBu9+18K6MRBgmkh+wXddu8UcHIV7qWH1dQ+pGhyF56kQdDB1lgfFPW+EHlHC2hjOBFdfwlJceU3cB7npb9Anfzml/5XG+nL35SCbyA3b6Cz1x7tmPYgOolLPX3ntnOTlMFOnkF+274455uSDjiSecmG11/fXXt099+lMJqs1duynuUcOXopn3LLqnfec7383y9WOTzffdd+/27W9/q33xjC8lYDI/54bIs3LlygRZ4zcdn0BavdWBrgFR+gVcDB0b7s6HhmgfwB6IPvKoIxMQrQqwdf4FF+TipuoBcACB6gH4Gda97LLL2+xyKFMAANbVSURBVL777dumTpka4GZ++/u///sAglfmQ5m5d+5TDxIiUIDQ6aef3laG/TGXzud+7gi+gNX+++2XQ5uL7rmnnXPO2e2LX/hiAiNRNavS77f/fmmrzN+67LJL21e++pUEbFdffU3cW9e0HWfFA0UAL8tRqCsdsVP0pW/p6+69q668MtudLo4++pjsNwNtHDQApoFeFqWDGds4DxvnIlTte2ee/EQtOANpRikdZjg65DoqHkiUwhMjo4Sf84xQXS8nxgEBQ/hzIiWLPb7K4MzxWbs2AMN4C0n2D6/Ou2N+u/vue9pee+6da9SYdMzhpNMJRybCkVGM4GVSsihEH2rri3MaOvAmGeIoOUXzKqwSrExp5CeDJ05gCMji+JS/DrQEX7JWeJ+DVxfDS8qSFkgyZAGIpGN8MgBd8FsTfA0tTpm8fRjq7dpRRx4RTvbQ4Dc2STmcmT35eyRnszDsj4Sz7sNAHH7qKkCQOivXUBgwSa/qq/7ATYKi4CcfPsCMfFpEHm8WqTMQVeAydRQgxZyTrEfUR346yIxB6gZUdCAV8mY7cMId+EgIKCg/04ds8hYPUST1wEfUQhRKPbAvMAiMkEc7cNTW4TnqyCPXtYU92aQDqracYCK4/N62WhM8Df3RpRGprg99MNs80hvC0wfI6Dt7nLThSPP6lFvtkH0zGJNPJDIjW5FX/QnsvH4B1HDA++y7TzpgfNUPWNTHtI9J+jcHcDgsQNX+++zbnor2eiZ42bYKYLko+vbChQvaMUcfGWnntX/8h79vkwLA/NzP/kx7w3HHhdN/qF197VWh4y3akdFvDGE98siD7fDDD22vf8Pr26qHHmifO+2f2i677NHe8dZ3tlNOOKk9tt24ds2tV7bx0S2OOPzolF1krEAD0EGP82+/o111xRXt+qjHkkWL8u3LLUO33iTbZptts0+cd9557bTTTsuPbpvnBPjdOX9eu+LSS9rkSdu1ewLUrVp5X3v9scdGnZ5sf/3Rv2z3r1je3v9Lv9iOed3R0Vabt4vmXhAPIxPa7LAz1wVgujZA1OrVK7OOJ51wfFt675IAY7fm/bFTALjPffYz7bxzzslrP/Oed7fDDzu03XDdtW1RgLWDD9i/ffub32hf/9pX27HHHdve9ZPvbLvuOrvdeMNNOYH/kIMPzvbURoB7PtDoB9Hf1BkIvi0A2pSx4dPDDj08++tAGwd1LzXQQD8E4hRsHAKw46v4vguXDjiMvPOj6Z6PODAGCYC4995781xFAPDjeGzIbxv+lUZ5zpU8fgMiAAvnlvM5QhzXuqF7Iox9ByRAgnSucfzkEIEQ0SjZlQ34SGvPUQIWWVaUK7RPdr89+YoqecLmUGpOEefHCXKAeDK++HHoZPUGnKfZPr/EG2FAZ/+Aq7fTrr/u+oxC3HrbresmgJ980snh+I7MaJb0FSVTRlY4iOZr/SiOV+QBuMn6hoyctHxV1+4YLNfQHTYw47w0huMQp08PZMUnP5QbdaMXETtgQYQko0SRH0mXwsQGIAJE6o03YKJMQ30FytRDWxlqAyyybnFemeRQD/N8pKnFEAEb+qILUZcEppEn2zTkoGPp1dkiisrON6yi3bVj1inaTB7XOu8OJMlax6Gp1IE0gMFNN97U2znAA4cqEqa87GfBF/mtDPyr/wIRNoDLpzVEPTwsJOgb0y1QnwrIMvvwIgDsmmHevC9Cp8AYHdC9eqID9j+gve2tb8t5bIbFzHPzIKEs8w+BGQDfvEFz08htSYl//a//dXv729+R+Y8KEEgvljIQZQHeReLcY87Ty3HB97d++7eCz24ZufrGN76Zb/N96EMfamd973s5YXzx4iVt7kVzoy22aO9978/EQ8te7aQTT2y/+Iu/mCDR0Je6kE//MCxouYw3vOENuco92d/7M+/N+V3sjHajO3oyF++Nb3xje90xr8uXEERvRZIMv10096J2wIGhh7e/LSOMhxx6SPvpn/7ptFmui9Luudee7RcDwCnr+BNOyBcjtJPrwGHvo33Zh4o0Z3Rt2bLQueU5HsltoI2LBsA00A+VGJIyJkLvjP2Xv/zlNKI2518MSQtAmKgsXM6IczDlWFznMAuIuaZc553jPKX1m9F1zW9P7vI5b26GeRqcZTnPYJaREw6Qc+SXVsdTd/HNdX3CGTGenATKidxj5QEmHDPwxHgncFrTV7dOWcJxFy9ggmMGDvDjfOUV4eCERS6mT5uezrrqxzB/+Ywvt49//OPt46d9PD+O+9nPfjYdl3qoA33gleVF3hxijLKUGUzS+SqHgxERMlcHCFKmegATFfXIIaOQHcCEbfzHIaiXxTnlVY58ABEdSGP+EWdNbjJX9KYDrt4evS/QdLRN1J88dCVSgxJQRtlSkQ0IyjoFqCvd+S1vssIn0mTa2LwRRnZ8gAZ7bW8DMAENda3+YwPaMn3wBa7wcpyRt7E6rQNPkU56fxUx0u4AnTKOft3R+e0+FQDSlQNErssbv1P+4KtNnNdGhvO8hu/agQccmBE6Osrh1yAyaJce1er3AwU4Vp9ImnXR5gCb9KJu5jj93M//XNtjzz1yqMrr/sCB4XP10z4JtoK8nap8EZX3/ux7Uw+XXHJJzjM688wzM420+gWACHD7Xp97wQOC6OVBBx7Yfv3Xf7397r/93fa2twVIO/p1WcZXv/q19t3vfjejnfUmWX2CBE8A7T/83n/Ie19dvBBggreHA7qcv2B+gK6z2pe++KV22eWXZb+nt5IZQPYShHvOg0MCuu36/CRUbQ1csyt0dtBBB2aES1n0Zjjyi1/6YvvYxz7WrgwwBihpUwueehjQ5sqcHHLrs/i5z3bffU4CPCDMNtDGRQNgGuhlEWNdW1E5w3qKNw/Jqt3OuYYq/YZ+V357gEuEyYTUSsOoMuB+lzPjGDgMRowRLONb6aW1pXPiPANQACQAlO/I5QrGIa+nR84+nU44ZI6QATYfpBwSJ2E9I8Cm3spSTwaZo2DUAbGMKIXz52DzExHBgxGvCJInUwWRVXmcIPlzknXUibwiScCM+pH3kUceTSdnNXWAzVPxwQcd3N/KiTT0Qk51tk/nEHIgv4Np6rVeqwZ0CtiQIcFdlOO38zbggy7ojMPLdoh/6iWCQ1ZDLD0q04czATgbXasPndEVAKPcBAj5h1V/e47jI4RzOXyafwG+4hqZ6Zb+tZW5SvRVulSv+pRMgtD4AyiAYm2afSXKtPBjRWq0BeAiD30BcuqrHQvg+q3dpEFZx+ArvSFAwC37U+ilhh4vvuji3O+ww7TeBpEnAXGkUTc8XQeA8C2AVgDMJGUrb5u4jz+5tEd98JXsVW8RDvUii/bXl7Q3Leor7ht59Q+f97Bm1l/8xV+0f/jHf8g5POYNkUc/oHM81c09lJ9sCfnMjfurj360/d3f/V07/ZOnt0WLrOQffSzkAg7dH0CxeWzmCFkpX6TlvgBiJquL4vziL76vfeADH8hIDvCjXH1bHwHmrF+k/dXh/qg7nakTvZEfENUv0ZVXXNk+/ZlPty+d8aUczjP523XtoN7yeIkBX/Op6EtE172uDMseqKuylQHsGfKMLpagfdnyFXF/3d2+/vUz8yPU5leZGqAP4qGv0Zm8vV/0ifjKthyDe0u6TDvQRkUDYBroR0KMC+NrzR5GOyMQ8Zvx4kTspamt8tjSecUmTX0mxQRVYAA5z4gWD0YLb8cMWT7hhhN3rgCELY2cJ/zgzbFzCuYjLF68ONMxyBwWxyetIZr6oKZvh5X8SFkcIGdu/SDGWtQC4GCMXed4OWwRK3OhlMGIAhrm++QaMiELx9/BVR/6UZ5jT8xWNl61cmUadyDsunBeeBuKsFbST/7UT+bQgvVqOC/8OfvUTfzl8FWolwPzBMwJ5no8IQueHIQ39pYtW5r15Wzwp3/AQsTKsaExmzWKvIpONtEBdfNGm4nFdApg0kWuGB7OfFHolt68wm1YMV/bjrLTqUdab4KR1ZwvPDle0S/5yQ8kaQtACQiiXw5JHTk/UQJvbAEN6gRIaKJs56iHP5EBMlqYFBDh4GsoER/OFJjLobuoK3CnDBETjrCGK/FXf31EH6o+qH6p5CA6sLaXCcqAXQKv0IchJbwzihh9U159BwAiG96lcyt1WwbApH190lAoXWe7jPUdYEBb0Y1+DJSSgw71S22rze+8c0FeU44J29/93ncT0Fiz6Q3HvyEBTH95oOvP8hby5jBgyG1i9ZfPOCNAxPIAcPu14yOPoTmT571xR6eAU7ZP6ILeLCfwF3/5F+0bZ34jz6mrB4yZs2bmEJe3aLUvcJQPCaEz9VDmknuXJPgGqtwDCUhCtdpT2yvLml+/8PO/kPfA+9///lzn61d+9Vf6xO9oVyBTPvPUzKHUp+hIH9Ee9Eif+VASbandkRW6lQN4Tw278Mu//Mvtgx/8YG6/8Ru/0X71V3816n9813XoRhnBKu9/vLylqk/qp4Y0azmUgTYeGgDTQD8yYgSF2hk4iyX6ej4jWA45HdrINkoMOEMLLHnStnKxpzyEL8KD0WKUbYhxdB1AY8QqLX6ZJv4pKh19GE/O1Bo5DDhHYxFDTo3zkDcNduTh7O2dAyKAIwCkDLGtnC2eogXSKxMYYOgBKY4FoAOgrC/EkTKy5JVPNAP/T53+qfx4rTkfht68reOjt6J1FjD0+rWhufPPPz8jcIy14TkrhKdjDz0YUvjIhz/SPvmJT7YvfvGLKZ+IkLeSPve5z6VzEHUwtPEn//eftP/xP/5H8wbSzbfcnHr827/52/bd734vnQug88UvfqH98z9/OZ3ZX/3VX+WQDl2a3G+BxNM/dXrqw5DJRz7ykfbRv/po+/CH/6z95V/8ZTojugDK8pMTUUc6MvyhTwCDHLc2Fy3QBvoEAOGc9qN7bcrBmQPDkXKK9CbaR8f0L0KIB2fs8x55LcBZvi4fAASfpaHL7Dfxp+20vTwAElBJNz7BgZ8yla899VJ6JBP5OFz88AfWFgawt1K7N9t8vT/7VdRFRAaYAQ7Iizh2zjcEyXLowZul+JoEDUAAGspUZ2+zJTAJWQB4/Ug/Fj0SrdFHLXegfPXBC8i1ppdy586dmyAWaPm1X/u1nGNI5x2Y9EitvpPtFG1MDitzi5T99m//dvv5ACm/8AvvSxnUh3wAf93T8rkGSLk/lA880SWAAey57r7T/iI0lgzRRj6JQvcAzkUXzW1/8Ad/0L761a+mwj20ANdeHtFn3CNAkgeGk08+OW2MjxzTkU0b67/qRtd0LGJlmM56UB7C3EeAMHCuLUWSPhx9ltw1leB1rzs65z/Rl8gZHftunnWmrB1VkcGMUkU5VsQni8ixutgG2rhoAEwD/ciojKhlATwRm5hpaA4573pt6xNDxOgz4kcccUQ+jRqqYAjTeQUVYGLk8WCMGUfnODHnpPW7gBUjxoHmGj+c5RgvrxcznBUBQiJEjKR8jCvHiqTzFIpPDrOJAsRm/RxOW9RG2el8Oe6oQ9QyHUs5FwbcOQZaPVP2cIDK8Tq0uRlHRr3NITF3AxgSCRN9oEfAxKdRvN79+c9/PqMJzt14043pDIAwIDWHGOKat6k4bzqz9pTXr83Nsk6PuSkm0dIzB/mJT3wiHatyfZaDrBw64AScidIYUgGsyHtBgLbLL7usf8fsrrv7Ss6PPJwLNlo/x3pEAJvIhfZRf6s329OHycn0Th+G0URDgB3gFWVbhty8p/bS3uYxRbNk23DGHJ9jDhPPBK8BSHaYOjV1IL0+FIWmo+Pg8JVX2dpUes7OebzU2XBoDlOGk3eeLpRVfcsxkp7Md0f7AOCccn4nLgAMoAyoVt0R+TqPAlybtLvvuTuH84553TFtn332yf4JbOsfwPn0adPSOZuTU+tz1TCkOns76/bb78iVwQFiQ7fkOPHEk3q/DFCuHGAAT219+WWXZ7tkNDPK0p/Jo88YljK/aeHCOzMqRV7t78HFvDs88NQHo2myroa7gD2v4FseQJTJRG0LeOoH+qr72Nws0UFRtGDWLrv0suzfN9xwYy5fIIpp/pd7TNSIbo8+qs8J0y/ZESDr7uhvNZeJbVAP7aU9gW0ARr3Iql/Rn6iy+ln7yV4/FsG26r15UwCT5Q0uv/yKvC7KZrkF0Tlg1Ly6B+NeoH99iQ70LWnpSVvkEgSxDbRx0bCswEA/MmJQGK4EDGFsRUmQCInzRdJtiCoNY+SJl+HiSESdOAl8Oao6xkc5tnJIrnGO9XvTTc0TCk8bFt6QyZNPPREG+oq21157tKk7TA/D3J2XYSO8TRpFwAxjqQxPzI+EEQZyurO2BECPiDCgoiWckGGnlCmejjnyGnroQ3H99XogTD05dKF9jsfnRkwefetb3pLOB1DxvTjr0txz9z3ptN/znve0N/3Em9pW4TznXnxRO+SwQ1NmHzg9IADqFuO3bBfO7Wv4AG104M0oDuSaa65NJ2cSsAnj5nC9973vzUjCqlUrw3ksyOGXW2+7JR3oPnvvHbwf6280bbpFO+qII3PBv2lTdsh5K18IJ7hZyM+RWznb2jlHHXVUAjDfDOOMgDigjB61iTqIzgCaIiZATQITwDOAhQiZdNoacBDJyDffAsQUcLXKs2hQAY4CtYbSOEsAbLMAv+Pj91pADBiOfN66u+2WWzNqMDOcI0ePr3YAxpB2U340aTptzhbgRNrOcJqhW84yy49ygF9ggFMXOdE/8DB0Blhl28fvzUPW8ZuNj0KiH9JByPfAqtXtnGj3NVEf+taf6chwIR7ugXL86iXqQh/XBuhxXyn79gC3wMYll13a7lgwP/vdiSef1I448si27TYT28r7V0XaOwPw3BZAeEEuqXH//Svbk9GHJ267XTv+eGs1PdFuuumWtmTJ0nZvbDOnTO1LJNy9oN1y+03tsmuvaPcvXdaeeuyptv3Eqe0Nx7wh385Ux6xntB95gaFVD65uV159VYDyq9s5553bbrz5pgD0N7V99ts3hwKt4g0MmYAOuAPxPs1ySwCyAw86JPr3W9rNuVr58nbY4Ue02bvs2m67Y17U8Zo4f2s797zz23e+dxb02d7y1re3ffbVZ+8IAHRb3A+HR1/ctz0e9+OSe5e2K6+6pu2x5955fty4TTPdZVdc2a659rp26WVXtAUL72rHnXBiO+a41zdxobsD/AOeF110Sbv22uujXW9vhwb4f+tb3pqRRG2pr2qTbeJB6cFVD7RZM2a2O6MtHg5b5UEBEBwffWSgjYcGwDTQj4wACI6HMxNhYuxzkb299uoAIgwrKtAj3SjJ75rzJjeLrHjS9wTo3PoAqSILfjuWlwPkCGvzGw9P3By1FXlFUbbddpt42t0znRTH6MmdY5Se4xNtshc5Cf+d5QALZLAxoNKPCZ6OOzcOUdh/7Br+OZcnnHRGy8JZpfyxAUuiHT6g6hVrr0sj0QWRgL332Ttf/zZx2bfcNtusD/NZy2batOlt7wArhkHUj6wW3Hvzm38i62DBQq9qWzbBMJ5vlIlQiTLQkzcRfYIDOFu8eFHbbTfXrm3L46kZ2Dr//AsStO68484JWpXpiVxUwFAhfdPB/vsfkDzxwdMwLPkfeODBdsIJx6fsHA6gUe1mTg6liiI4p68oS7nqUYBDGUCn/dQAfuplSI/8yP9ArXaWDwjzcVh7UQERHpE3ctKHCNacPeYkOMGr+k4CuJBPhJBMokzV14AxQCTfpIzf0WQBzrw9+VBGLLxCbwhHJMMr+SlbJOJcAWW88UQZCYl+EWxy7o5lIrQRAKsNbVVu9uW4fwxnklcdlLt8+bK4r/obm1aHB8i0j+GrN57yxnbcscfFvbZN2zxkAeT0PUsQcPQ+e3NKpAFQAWP9DaD2bThl6r9vOuWUHOYzEXrVA6vblB2m5PpEGamZtEM76vCj17UlvYh8ifLQ7c47z+7DWNEXtIfhRTK86dRT87MrdKceIjFeYtBOSPTp53/h53Oo0csS0hx19FHJA8gyNAkcG971Ud7jjz8ho5n0oq95WAFYRNKA7VXR10XKPHzYvDGnjxmGJBu5LUPwS7/0i8nDBHCrk4sYWdzU9SPiIeHnf+7nMjolr5Zns9Rz9crVOeeMLbFQKJmBVP1ms2j3gTYeGhc3ZLc2Aw30IyAGnyMq8OKNE8bFuiYMIUOLNgSYyhEiRlg0hCM1GVOUZxQASeu3Yw7VVmXLY26E33Vu880BF2/EPd1O+8TH4wl+QoCQd+VQAOfzUDhWzolV56Q94ZOXUc85NuG8OBlp68mfQScDB5JzNgKU2ZNF1IlHJy9nI0/KHA5THtECzt9cnz/9sz/NaNBPv+en0+ADmX/6//Zz9yxaFI5ku/aBD34gnNP41Msf/uEftbe85Sdy6POMM87IuS1r1jyV85N+53d+J4dQPn7ax9MBqY/XwAG3d//Uu9snT/9k1oEjMLnYp0Uee+zhfMX6bz/2sZxwDoxxhCbvH3noUe2d73xH+/CHP5KRQgsd7rHHnjncss3Ebdupb35T+/u/+/v81hx9ZKRtLFLyq7/2a+Hgds/oDx0VsKFfbcJ5qW8Oq8Y5gJIO6Ui6BKChT+BJREdaUSp9gV4BL+2pS0lP748//Gju1VF50hqeFAU76NBDMsrmPKeIpz2Als472iujT9HuCaqi3fUffcG8JO3HcQJ2wMznon9K99a3vjWdsjJNgnYO+Mr+HjwtKqlM+emB7Gee+fXYP9lOCf1VnQt0iXoWUM95MSmXN8iezLlAwFjpVAPrR86JoOVLAFE+wESfyjLcam+SdM4RC32SJecaRf0AES8LmPOzbfRbn+sB6J5a+1SbsO1WbdbOO7alK5a28Wu3aNtvY0FNbdgBM/2Lvori6fPmUAHgeNMbHYsq6aMm0Js8Tkfu0Xnz5+UDgIcFOtPO+k++fRh8nfPbsblRIlteGthl9uy8/wAZfUjbeejxYAUgA7f6QL4JG7J6kcL8NG0n0uphyKrl/WWQvvaWtqMnoEnfNLQJgNGxelhewB7/LTffIgG5COtf/PlfJGD1QIM23zLu+4E2Gvp+DzXQQD9kqqdjhpiT8NFX8xkM0xSoYQDXB0tIPuQaA2vVZIax1o1hvBhp1xlk6Tkv/MohOWb8OIj6bS9vPvHH35Qpk7Mc5G0zzm/7cDZKZ1Tx4vQRZ0oGT4/21m3Jt6wCbHBSHL30rhnmUS7njQ9ilA3b5TyaeErOJ/nUzSbJm9EHbPAFEPDtwy/9Uyi+d3X/yvvTqakLR8PpiCK47g0kwGZ+OB9P0/QGSAGZrhkq2WHaDimj75xxUIbO/v2///ftgx/4QII0bzYCtRyyCfe//Mvvz1fCfXxXPlEW+cxnAfSsN5OT5aNOnIhrp5x6avvd3/3dnCz8xpPfGE/cR7RpAcpEVegfH+1WQ2HaosBugiG/A6xo55pHpK3xpy+/OVztmGAhAQ4A05KnqEuCK443NnmAVABT2yByiq5oA7LbizroE/qT8vGQlzzKV0D22zivrdXftjR0Yf6O6OmkyZPSMQM9wJ886qRDVf9T1+qTl19+eR4DxDtMm5bgHqjQZ8wVAgQt4pgyG+IJfgkuI6+InTL0QW/m+dCuetGt+rrPUM6tCT2pA6Ak0sPBi3bpI8oiExnVfXoACPV+6smnoy4T2uzZu7addty5zZw2s0XLtSkTJ/dv1gG8wZeu1A3Imxb9C29tpc31QxHinXfauU2bPi3LoT8ABrCRR531O/OUgE1gD4DU/7UfudUXuFE/n4ox8XrHHWdlvdRX5Mk9gLfvJSqHHKLFAL96uY/SXgRfw72WPXDPOWeIN+/z0K9+xRYYWj3woAOzfpk37lOg1T3qvsyJ75Eno3BLlwXYejSjUvpY9bOBNh4aANNAPzJi4IoYJA6pjLX5CoAPo+w8sh/dyqlKY9tzzz0zcmGSsic7BhkxpoyT8jieIvmR847tyylXNMJQmNd/TSC1IJ3yPJEDXuYUeYJl0DkWZcgjsmRtItENH3NlXOXz5pYhAXnJb8/4klXe/uTbX+XnBDhFT9GiGhw8Y+wJmn7MTbnj9jvyrSvzOyxgedjhh+WQjcnV11x7TQJPbz5xnvLQEQPukxwW3tt59s4pF77HHHNs+63f+q32m//6N9u+++ybDnbWrB0zwmKYz5tNyMRWb7+R2adi8DNcwXGQGVCp6I2hTPNtgCuOll5EJWbOmpkTy9Wf8zB858v58uQcpHSWE9L5k5lO+1pPfUkI+tA+2U4BSjy9y8fJ0aO2AE5zzavQL91x+MCjtqDTmos22r84PX2AjoEJk6hFQjL6s3m9EelDwWNmMeqkb8kPUJEHz5Q35MA7h7gChF151ZVZn30CHGTUMJyoNPLmBPVgJ58Nz4pKevvTMKq5XupefRiQUBf9Vl0MpRrKVF9tx7mTWTQnHxIMH0b7kDGBe8gmvyhL6n0s6iRdgRttTj5RKHO0zF+iO/eVYWRlRYIACs+ETjaN/FuGw4i6rHmmjd9k87Y2zrsHlIMP3hmdwydk0c7qrVxgTvuqO/DnHiB3H7aO/hDgR53JVfXX7vpaRtdCFp/WAaLwls6wrH5RkVNtpw+4X9XZywlk8XIDGfQRbWsoHSjGB4jCiywAF36AFH69nwKEliPoa0LJLyKW90GAMP0C7y6ANn4mVxEXXcuo8kAbFQ2AaaAfGTGi62+eDk3+5dS97VJOyLXnI47Ek7QnVc7cEzNDBwDZJzCIrYyp9DYOB2/HqPIwlBn5iTyMOKexLJw748+AM5AiGyI/HBsHJ10+vYfRZHCl5VXxlgePHGbwtlzwVQ6DyrACLfICFSWTjWPAH3DzJ8073vGONmfO7u1P/uRP2of+6I/yNX2rLXtStw4Mg+ztI0sAAExvectbAvTtkuV5Yp4UIAdosdaOoRv15AA5Ek4Ncc4mUnu93NDGf/vD/9Z+//d/vy1ZvCRfpRaJmhJ8DNUZFsrXtYOXOSRdP5vH0/1O7aSTTs502obsnuy9rm4xwd//L7/fPnn66alrqzd7+icL562+nBQ9cqQABoBaE9TpSBtI65jeOFJP+aG4jAzhBZyYt8PJixRIn5o0tCbyMeZ06RjQ0P4rVixPh00uPEXMklfIoP9oZ+2nXBsn+uz5HoGgj2p3oMdk/EMPOyx0sGWCZs7VNeUlYAne+Dvnt7a3NIShTGm8LYa/ye5klhawEWlM5x7Xql/Jr/1MsBYJJRuwRh7n6ccq7NYzEu2aOHG7BCn4kjuH+6Lu2libkYVuJkZeutCW5BQli12UHf046vPE46GrAE6b2p7pQKvuI2W7HwC7XLk+ZKRj7Zy8Io2Ipfb1coLyyDx58pSUyzBipskoWB8iRH5r2wLLZNQmgImylGl4ThvJr5+oK524T+lUfnUUAczhztCteUqimvoLnYmQ5vIfoV/l0JO66VPaRLl+Kzvv5+CtDABThE3kEvCdPn1aDmGPCx3bBtq4aJj0PdCPlAoY2MoIMkYMk0iGuQEMN5JmQ1TnGWERJnNQGCjDRZwNg4yfdAykPUfIoDFwyHXXkOvhTxMwWD9HGJ2xE3GZPKlPFDVcxpBzjgw7Qwvc2OPDQDPEDCajnWAkZFEOw83pc0amCHJQIirp8McAFKfE6AIw5JFG/Rhl5YsC4WfowZyYQw85NPNymruHc/X0aijOBGMAlA7wsXmd25DKcce9PvkBNzl8BcyF7jkLk3sNsYng+G6WtwE5B/xed8zR+ckH5XlbbkaAIE7E8Mquu+yWQyu+Qm+SsHlM9CwCNSdknTFzRoIqQyo7TN0hy3jnO9+Zn+MI4aJmHHBfQFTdR9vFNVEBjpqcXsunM06znKlr9GMVa6SN8KC7cszajG61/aMBrs2xwUcJ0nl5wHXfUjMUpP3oWrtIlxO6Mendrvfb/Bl/0V/k7VGwHg2xErY0b3j96xN8JtgOmbJ+0upvkZ48AIS9eWTebjOXxqRlkVf9ZbMt+vCh9iCXiAnZ9DVATP1FWsy18aKCaBtgn6IGb6AkwVmcE6HRD/VVYCBBTfQBAIFs9O53n5zc5/nQEUCT5Qfg2XSTZyfVbxXyeYAYF7+3ib4nIhsVyzqm/gPEiN74LeoCFOGhfFFQdUAhZupHG6sjvYqe6Uc6gevquFVcd4+KfuFFjq6H/gFqUUn3Ix6G3vRl7e/hxpur7uvI1O1ApCcHfegP5M1htrEIESBuAVR5pSUTGUWd3KvKLD4W90xQS2/BM+cvhazmCrrfj37d67KPm+A/gKaNiwbANND/MSqHzhB5iwfo6a/Q757Rh0rDMNoXcRiMu3zOe/PGW06Gizh+xq/A0ShwsHHMqIw+Pvjl02Wk9+kSDu7KK69OkLBzOH5yycdQc1AcKcDRn7TNSzCxtr/B5GnYngPrMnA8fe6FCeSTAoQo23wNBt0xh2LP2TpO8BAy5VydMMzKFBkAZAypACjqxqH28lsCEZNLvYnEaFvIUBTglltuzdehjzzyqHwDjAcCxjgVzouDNeTg0xGAB9kNqSnr4IMPaXsGsFEndTS3y9NyOrHg4S0sk2M5V+ByWgCpilp5swvgogNOa3bIZT4PgAsQK4djMVQkDQelnmTSThwXvt7gsspydzbPrtNkOQj6F1nobefTFH0tp4w6BdEhvfqjr6hCOjZOzNCPskXrFt61MAHnkUcdnX2KbBxvtmPwkDd7y1pvinUdiZpEUckfcMNTWktdWLNHpG327J2zHD2X7IarAOqUJRj6rY3xmzdvfg6r7hk60k6GdundcCFAY45azt8J+elAX6mhpppgzambb2eivvJEQgCNEDLL8cYgnl5uqLlW3qzj9OnCb+ktZaBeZCSb/B00PRuNyjWMAmBkH4p22xwwijLIQP8VUXMf06l0+lwOZUWZwIkHjtTLWFkmXwOSCWRC1hxOi7IAmB6N6oCRThEeosuu0xOwC+AYzlM2neQDSchmnl+CyzhH/8pVl3zoiHplO4bMrgGi5BG11l7uW0PxwJrrS5cty3sP6ev1AKXvqSMdS7No8ZJsR2/ojYs6dbD0rB0b6NVPw5DcQK8IMUQcviEfb85ZqTqNWBhxhmiU/HbN3sYJe2L19hhwkwYxzgMTDKffjDZi0PBEzq/jw9A/aU7J2jCG27Q99tg7X7XnqGsip6daTko0YKutto58nKo3sDztAmOGQUS1+jIF5jYYVuIk1Ifz4LwNBXCWjDtisH2epOrFueRTbVTbRGwAzXnpDNV4+g57nsba5jpehlyst7Rmje+YbdW++Y1vtS998YxwTI+1XXfZNevLSSif4+jRl/46dEbHwlmWExYB8/ZdOumoT6/n1nn+qQApDD8waFYKEPHE0+GYtgrHEXJvGnweDafzdDi2mqcCqJDfEIl5Ns/qvr9Oz3Fpr4xOhOOqSBEn9QinyDmv8XHkrTOalEApdEieZ6LNglXk63NPchmA0CFnmk5cIUHqPiGA0eZbjk9wlSAhwM6DDz/UDj38iCwPSCNbgUQ68ZYUH53zysaJCkW7pw7UHSjroIpjveD8C7LtgQtplOla9rkQI+e7PNYnums757zmfsXVV7U99tyzzYmNUh4LnaxYeV/qS9vqO4aLTVgWtTJkVKR++Pc5W31YKoFE6AyYcg/0ob0tMspCb4+GnrQbADYu5I1um/y1neEwPOXLNqKXqAPd5grmj5ovGP0MaArg8HTkfTBkfDi2rFf0JyAyv6sYbepYewJC5NQcZJUWT/eRdAB0lSe9BT91dO1CB0BI9tk452FDHxBhBZaAc0NxwKXPDyFyADyu05/2zontUUf9jZ70d28WVuQu5Q49aRdRNXaBLOaI5UsXsbd8hiUDCpjXPQMA5pphAS633mZiuyNA8EyLVa4DSraBNiYaIkwDvSLEUDJ6jKNJx9bsEZEQ/k4jOub0kOMy6NIzkiaMG9IwZwfoYoA5qiLppZXHVuRJPY1wUBrSyAc8eJtowYJ5KUMOc0TeDL8/+lg6fga7okryVF5kLwKhfE7RatUAlqf3qEqmZYBzEmjI9dBDD7btrDEThr6GQvLJOIAQHpwusAAIJLgJ4GYIAnAwJCJNdxSGX/oba3SGPG2b53TgQQel4ecklK8uCSCAnDGQop7yqVfOO4lzypPHMgucReohyiMjB1hOFTAR2QAE+9M4oGCorb9pBeRpA0/5+aQOEMYfXvZABrmqbZWFB5k5Jue6Hh5PJ0lG57q8/c03wCzbdtyzb7VVr9EOZJdevexFEubdMS+/i7Z7gG7zrZA6RIJ0tkg5vY37Gjp07pp2rb5kqEp0yRuJ1gAydEpH6idyEyyyTHKJbmSEJhyz19StwK4PHP+G47Md9b+MlAQYNETmNx2QCwghGzAGFFb98SQTXWZUKwrM+kYex3QjSqMtzD1TB+A9FRQ7IEp6YCmBMPAQcusb2gAoiGTtmbG+KRo0Ps5l+6cGTIruw8nuDQQAASAJYkNOm3L1qYz0RHva61uY6Pv6mmFKx2Tv0aQOWgD4hwIIui/0W/yUn/dMlKNdkX5JJ/qaaJb7Bi/lqBsA5d7r/HuElxxjjZQ8EhDHT2nZINfcs2S30UfZDQBYmTm/KeoKfV522WVpQ6wULno+0MZJQ4RpoFeEGFqbV9rNm2GUzL2x53RGqZyU9Iixs86JeTNf/vKXEzg5Jy9AxLAi+cq54mkDfjKCEGnyiTOMIudoLhX+dy68Mx2Wawy8J3uORlQgQUOUU/Ne8FOGctPQs79jDgvfNKaRl9gAAmfotydZzobRtSkno0qRlzFG8jDSuRZROLYEGXEy9/GbgXfsrTvr5AAI3qB7z7vfna/wo1yOIJwduTko/FK/AV44W3v6SqfhX+w5arInf0J0VaYDy3pGfZ23V/+qqw0wyshR8FAvDo2DQpxUtUvKE7IDERycCIMN8KLXAjjKU0eRAhFFZcqrXOk4NyCieKee6Cg2zs2mHsAImVauXJVDNbvuskvba++9e2QhqOqBtzLxUl/l9W1tDg8hkZdImu3iUySHH3F4fo1fH9Nv8KmhLHLhRyeiPcDVWd87Kz/rIU9GeGLDCzjI9ZKiXXL4LPIggBE4KH17s1I99dnUb5xXT30q+2eAiQQF0d9CdTkvh+zy5FBS7PHTj7O9g8d9961I+VH2kehLygeI6Vm9Jka5AAhQSs4+iR1gjX4cZaqryI0FShOQRPuTzSTv7HtRf+Uph06AfEBLvzEUpu/rC86ZbyUKSQ7z9ERy1N2W9Q1gJJ3h6up/6uU+Xb1qVbad+pWegEsydEDcZVDP0gue6ugBwhC/POb9OZ/gMfi7pk3rfhI1BcAffvihLEv/tBf9HmjjpQEwDfSKEQPK4B155JH5ar9Jk0AGg8ooMVg2aSptESdhmQEG3RIF8qByBDZ5AYLigXrkoEeQnJPPxmD6sCbj7TMThuXkrfQzAlDhgy8ZHZPRUAhDzkEwrOYwcF6AjCdu5TDW8nAoABEnzynmtaAEI+EApBGV6sOMz06U9ZuMGYEKRwUEpEMhezgVujCRFRjMOSLhfDxlO+/JHF9LHnjjipx+k7U7hmcnTQMgnCpHW/VThvVl0vGFvuiMM+YwKw0QwUmTDy+vfpOPPBm5CAcNHJGV48FD5IHDFwWRh+PJr76HPPgCORwcxwZUeOqnB+0LYOBho097/SD5cuRRR20ovUnk5NCGHL46+80Rk1Ee5XP6wANgpc7IXnuT21y36jfqeulll4Ycj2ZEMtNGGnKn7gI8kz2BRKSnr4eib1kewlCtqCjHCoRIj2+WGzwSIIa+5Nc2Wadw1KUT9QQggTiENzm1qb4CrGwrQhKXtaVhQ/rHV31FzfQLRJdRweaTOGS2AQTKUm5GIKMc/Vs9LEKpzQzNKVOaPrT1TL76L415b8usPq7vBB/DwfqF/qdvmkQtr/omcA95PJToe+5Qc+tcF1U0uVp/9SKBPq8P4pv9IHRr0cmKSFOkBxIPM8pJvUSbiZwmwAqe+g0+ZMi+G3qhC0DLfUz/5oTRS8oQ/URZ+oxP+0gPMPZ8W+SHnw0j0oGHtgMPPDAjhmV/ulwDbUw0AKaBXhFisBhYRoWB8io6w2wSOOPvmt+M8oZIHpPFhcAZThPB5QEEOBp5y9DjoZx0aGN5q+w6L8Lk1Xxv4CFDSoxygRURppLZCsCMKUPKYGdZYfw5JY6Yk2Y4gR+OLcsIQ83xkY2hjZPrZGCADRlIbw4Kp+g6R2oIh1EH5jhDfJB86uGNN07O8EGcyjI8+ZIVnwkTtsp1ajgeTqTmknCEztlqUq75Hq6pByCUc0NC/Z661VE0gfzKlY98ZPMGkbTy9TYYH45rcurd0J1JuhV1AJykISdHigeg5DpejkUuEH7qa84LsGCyOrmK1K8cJh2IRGgrYM78rgSEUTbgy9H7or05RT4JYg6Z4UxOlUz0kRP34xywQkby2NtEgwyT6l9WY7dGlrcATWgHDDKN+o7t8y/k5rz9toSGOXdAjcUZvY2pn9MnfXHqhuREXrwWr/30KfKpE7ADiKsnMCyfdlYOUCQf3dQDAp0A6No8h9wCOEhbyxZAVPhKZ54SKnCuLQBV6XIYOSiShW76MJb2Nzy8evWq1L85Z4CDKBL9euOPLkWiqn/qg9rAeWWuXv1AygocksOcI9Ezk91FjkLUPNcnr3uTr7eHyI8y6YtsrukbwKu9ttBXM1IbPACy6jPqr79tt93EvA6UeUDSx/SVvCdC59owgWHw1hftLbgpr/bQD/Fyj3uo0Y7sh6E4ZWf7j20DbVw0AKaBXhFilMqw2xhD6//kBzivuCLP1XUGdX1ijDgrq38zaOZBMeRIPlS/R6kMGp72lYbDES3gCCwW6WnakzOnCJCJclRa5VakAj918UTfHZZVwidlHiH/XFso0noC58CcZ3CBIwZYXoZaBEO0JQFJnM+ygqfFJwEqK3zXk7PfrnHenA5nzulzUIiTwlt0iZycDgIGOBVlesKnJ8fMejkMjpUDCPZ5DbBB6ilikW0S6cgCjGg3jlR5zmFGD+otGhANmHUiNyAiCpDDIcBYEAen/TJ6FmWYFyIyp220PYelrTgnUYisD/ljn2UHz+w/kR9f8knnTUWy4Om86IGFPuWx5IFFOUUfRinnQAVvPPQH+lWW39qf0n0y5I55d6TeDYFyrKX3AiWpsyhbdI2cFogExOlBNFX5wHi+XBBgRnrlGHJVF/rg0G3VTsCmqBmZ4o7JV/wtZoonZ67NpKMrAFi9AQEgEphOXiGLsoF4ZSpLuxi6dY7s9eaZaKR2lMdW96Gv9Gf7h6wAnqgNYENO+cyXIou5dGSjU3VzTp2zLUIuoAUAxDf7S9QZ8NOO7hXna1kAkSVlZxQs8ipT/aRB9bDiw86WGtD+2hnw0w+1pb6pr5CDTurByp7e9F/3XF6PekhbQFg/BgTVWbnuVfnoBcj0UGPVe7orcDbQxknDpO+BXhFi7GpjqBhEDgQY8cFWiwsaumDQOZJECEk9D4/E0HGwFrO88MIL89iGGC7Xixg6lIZ3zBCWM2QIkWEhk88Nlczeeec0sjbOKodcwmCTNWXenEMyVNOdicmzJWEOUQVfzp4BZow5KE+nQAzCl7P1hMvwAh3Se4LO+nWROpgKgMTZoC67dZ26E8xyGPHgoW54AEj0JsJBFg4EP/XgSNLxRL7i6zznQg/ycGjpmKNssnCMzmGSq1bHOVEDjoOjVZ58rjtvbz6Sp3U8OE2OTmSEc1NvusfH0BxZ6NU5gIUeM1IScuZQYPCTloMjo3pmPSLf2mgX5atnOvL4Aww5YHnUkf59UPb2O+5ou+++W34qBsXlLJf+tIf8vb8ZVuzDsdk1xoUeoiyCmegN/PgyviFhdVOOcsnruCJW6orHhRfObSvvvz8//WH5BvXASz2qP0YJ64AwPTivD6tvyhTntEnJSm4ghS6VjZ5tww6O5QdAtBHeGYUa073+rE3l9JvseJMXEC7e9PrEGMg1AT3BdxSA71r9ZHyXSR8qHVbfKTCc91f8yzoFT0OjJbPy9A0PEa47Tx5tliA88urTAGvlAcqe1Pcin7JRrbgPvNKDvNowI8HAXIAkOsbPPaispGBJV/bkzrLjN945gTz04p4E2LOdon3p3rH06Pbb70jgZEhO9CvrO0ajxwO9+mmIMA30ilAaQoY2jA9KRxDnDJeYBL548T3ts5/7TBg9jpcj4EaBmz6nQlrGDQFW3lL6xCc+kcMejBmDWdEUZaxvuCpvncdzpwBJB4XRu/uuuzPUzsgaxkGSjR/PKYjCcGzW9XmyPfb4I7klhTHF13AehwLEAELADefFYXGInJV01rqx50ATkMX2YDxlp8Eeq4O5H2QTBeDguoPtCyIy/DlkEuWag5E6Sb30ITWTZz2NKwMPDqM7jQ4KugOycGdP0/VkGIPDw8cSAeNDj4AZ5yYqZ94Jx8JpqHQ42/A9ax437MUJ4x+AbosJ4URNFF8b10QpeuSDk+G81S+Hl0J2kSv1qqd7MtgANTowbAP09eNnXwrwu5wW/XHY+NIDnZor5jdguTwAOEB8wP4HdF2EQ1c28puz5bwTgET+J596Itrx4dwAY8Nfdy68q33jG99q202c3A477PAEFuQBDKiy5CrgJZpm3tKCBfPz6/X1YkG2YZRNXnIjurcBJdrO+ZyTFO2ireQBWhDgnW/MRTnkkl59ATVRKPUC1tQpgV9sJVsO8wWv7H+hb3WWXr1teDuXAD/SaaPxIZPhSGXJkzKP6RiQFDVVf+r0Nh1+6g9sVdua9I7UTztLn/0g7iP1En3NxSeDt3alO2X3Sf39BQFyAT+PP/ZEAGnA3FDt49EO7rUATz7XEn/uC/eNhwH1d2/UMFr2hyhf2fQGUClbuxgOlEZ6daghWnlEFuWjPxO+C2Dqr3fdfVcuoivCRK941TbQxkUDYBrox4IYKAaGEfYJEPMB7goHddHcuWnYXONk/JWTcY6Bkte31BjF6667Lo0k44YXYtjKkdpLjxhym3PdiYxru+62azoA85DkM6+iQvwiKix9vuYfxphhtzxAOQV80zmFs2F8c1giHbon8j4/RVnSc4bmOwE8yuHUyc05MOZ4cBDmfnAcHJBojLye5jkQ801EqNTLB0tFZzg16fGkG7y68Q+gETwNAXlqzgnPUV95yc4x0XM6qXC0ZMWj9IOqjcjpWP1do2f6AbwAmAKoCQDit80TejrYUL0J6sBGqCXT9UhMBwnaAKDjqMy36Wk2yWGfilYom2xIJCskSznUlx7stZtopWEfPHzTztN/9YkeGeoREHnJqg7qpAwymycjszxAywXnn5/zc0zYFsnIuoY+zUGq9le2TXuat+SzKRYR3WPOnCxTXaQjs+iZeVQ1rKiNfJdO25DFfDMgs0AFgET32R7BwhfzC+zqD+SmZwTw+3is68CDISVDgx4C6E693Ut4KVv/dA540Ledo8NsmyhTueoK1OhH6pdzqJQZ6QAHebwhqG3vv39lyq1/kg+w0qYghD5Mn+qjj4tS0bH+p14J3KIv5HyqyJuyxnm/3YN07f5Bud5S/JY/+1LIVvOS8DO8TZ4+TNuHy/DU3vr4ypBTH5FXOyxfsSInoWsD6dSLTEj9DLnnG3TBn40BrsxJpHc8qoyBNk4aANNAPzbEeDM4jOGxxx2bczOs6D1v/rw0VhxcRgZsLGgQI8W5iEyJMjHAhk1c5xjwdA45TsMYRnRDhg0fX383xGfFbAaTMfbmTgcQ3fAHk3RurtvSC3Ds4ew5cOV1B/94OOmt87LhKQbfD2tImXQsHQfGeFugETHQzuNLnjoGKBh9Do1M8nFanLo06isSU/Wio3T6Y+AsJ0fHX4ieDgtvjoBDpZMOZjoIkp4zcF7Z5HO+HC09Oqcsm9/KAlhRyUxexyWfSA2gkRPUI52neWUAaT4Rwom6YBIxgCg/x0RneCiHDDb5tIn6GyZ0Td4cGoxrdENW6ehC5MWK6fRAf/hlNCnazLHJwfim/IZZ9bE47p8D2bTdcOMNuSyAlc5FE/rVZ4f0bPIA9Ryvt6a+/Z1v5xphhgGBJc5cP6B78nX99kir/gSU9OGnDna1gz0FqF+ClgAzoiKAcC6sGrrUBgnuQiR5ABs8AC5gxFC3TfvgJ1qi/wAKZEUrV96fx/qB/L08bdc/15OyjOnHNeUrky6BBf3D/Ym/umob+s95dKJCY/0Gf3P66K9AC01qi6x/lFG8C/wp/5FHHs7V792DeJRuXLNVOvzodftJk+KMRTcfSbCpPyVgDtmQvudFCsCMLMqOpgu+XW5D+/SaPONc1itBWV+HCXD0kOGtx5133jlfjOjtObjUjZmG1h3ox4YYHEYU+br5T/7kTyaA8LX7JfcuyeueWlEBJuSYoXrjG9+YTlaUCSiRvgOJPh/EnkF2vowbQ69MmydRjkW0yqrfIk0MpmiRp0jHnliBJvwYXXOXJm47MR2uJ2hPn4yzaA8AkE/04SQBE0aVs+REE6CMgRqOyjAbmTzdJrgJuf2Rl8Px5N6fYg3l9e+BWWOn6gJ0kCcdd+RNgBPl4utcd3ZdH/2TFH0pAQ6IvAAcvnhJz7lJi6Qt0OMaSqcZ+ZGyOJnSc+nVb3nwdCwP4rABBfXGF89y/upsaYGsQ1wnk0gMfpwhx0aX8vToCt5PRfv14RhvbinPMccmHfAi6uCtSoR3r3t/g6/PtXk8Aa0Jx9qRXHjTjb53+2235/fwjjrqqHTAHDrHjshBvj5h/Ol24w03tvMvOD9A83btdUe/Lpxwfzmg2gmYoY8EW3EconbdhDPWfwAioEUd9Bd6SbARzt7QrHP6jvL1A/qmJzytMyXqob7Zv0JWZQBi+AAdXgrQzwAqb4qJpuj3mT4AFhCRfT36j/l82S6hM2DX/ah99EeAQx3uueee1KPjBx/qw1o1bAwIqjceJR/56d9Gj+6zBIIhi7LxAtiV2dcuA1y3ynppf/y8qWovHTCMXBNNcz9mdE7/HDMTdJD9O/7wcuy7d/qW9pOuL+LZhxHdt0ARub2B61xGuALYmTi/atXq4DouP7MDiAJY5NEWA228NLTuQD8WxNjY6pizEBF4/etf3xYvWtw++9nP5uvcHAlimEadNjIE40v/hiPOPPPMNLiIEeTQgBR5nK/8jm341BOuD8syuL47xkBy1IhDycnZkUYe0R58yFpDacVLVZTJwRgO4QwYeUMK+VQd6RhjaTkFaRJExXnGGzCkB0baK9uOOXFr7MgPRAEp8oTd7q9Yh/z42VznHBxznl77BwoMyUUhWReOCy/OhHPYeuttslyODV/7ImXRVzrMqBfiIMnFkTnuAKablIymBZGZU8NLfXNuScjAIYkecap4qAN9eqXeBF/lc5zmzrisbGA4z8fWdflUWxnOMgFBABvtR8/qatgPYLx36b05dGWtoZmzZqZjzuFJAGak7chC9+Ws5SUbngDBQ1FHYKkco7QJiB/r9SjHvuieRe0b3/xmApvDDz9sDCT34TSOXUSL3PmJkuBDL84hegGI6ZiuOHPDkubCqaPz+viDoVs6yKGk+NP26mRYDXAXrfSJHW2hffESOdE+5Kz7JiOJ0SeApIx4hRz6REZQggdZzKnrbaq/e+Nuy2jbBxMs+WyLew1A0a7a2jIW2hJvfUlZTqyKNlBn4KJAvPJcB77uv+/+zF+v+utP2g3RE3nlsWmTBI3RBvplLj8QMnpIEm28L/aT4mFCP1od8slrHSX6NXRJ5qxn1J087i/6BJSBKeW5XsPTHnDwN0eJvMuXr0jeOXwafcUcSu0oTfblgTZaGt6SG+jHlLiytWmMOH9gafUDq/NJmGOvYRhGanTPeDKCjKcnV+FyBrOMmT3DLC3jy9AxvPacbgErjlC4fbfdd8tzDCMjyuAy2NLjASRldCf45qvs4RwY07weDoPhl1+Zjk1iT4cYvJQhakCmjEqFfJyXMpzjvOmgomrpLACIcDSMP70g/Mkifx8C6XO+yily6OSRz3mgIQ6yTI7cNcMvEyb0YZ3x40eH+TrQSTARerEvh4V/XZOOHOrG2Za+HbtOf0893b8fJh+nynlnPeOcOiZAAXZCBz2CY+gxQFS0aQKBsWEYerRVmTnvKfW+abMmFH6u2ZYsXtIuvuTidvLJJ+dHhp1L0B31xB8fehXN4jC1o99kEYWYP39Bu/iii9uxxx3X9pizR+ouy4p8mJBHPnW8P0Ccz54YegT0DzjwgGwXOgbd6UObkkEasjsHKNKnSBd3C7wC6togo4+hGzoDfoAIESLDWniIeALbZO6RyAC9wUcZvX/HceQ1VJhvmoWu8JJGpJFO9V97JMID2ABqhiPHR92k9Q0+/AAIfTfEXlcHOqQvYFxUKvtBAGJ1BTzVv0+IfnbNKPoAnOQFAEVt1ZPclKAsMqWe47d+JgqanxwaiwDWfawNbNpg083GNWtwdVA0IfkrDHDVnvg4pw+T2T3gfiGLvqcPkSMfDEL3wKO2SFn0iygHP2XfeOONaWNOPPGktEmo5Blo46ShZQf6saQ0PGHQGK1T3nhKO/VNp+aTvuE5E3gRA8n4M4COGSpGzVwmQxWGYqwezsi7zkjapwMIg4ccc1ry1XXDFQcfdHAaQxPPOXZPoRws44kAJcZc3nojjrFNXuEkODKGlXzKYpiVIYLSJ6p2sKHMcqTyc1gATjlBDpDDKbBDPg5bBMd1DkYZObmct40yJ22/ffJNABB/QAuHjH867+ABHFZeYIZzVE88XbeV4Sd/ORnnARKy9GhBd+bp8IOfa3hIz3HSvd8cTkZaIr96SydaU+n8RoCSNle26gCAAJTreCHXODR8EyzF7+wHAWZyTaTQgQgPBztv3rysP5CBDx1wjJwiWXLu0FhfoHvnkPa99ZZb2wUXXNB2DNC+/377ZTuTNZ1s6EK0kB4AFZ87+eY3vxlFr22nnnpq22///ZKP4VzDYgCIVa+rf3TQ0IEmPXTA2MEsAEOv6gx40FHX35a54KW6F1ixp0/p8cLTp3L0U+cpQ/s5BzCIGBl2VBflWXfMMd76rHx0CmCJiNWbnAlg6ThkUd/Ho68oD2/1631vbd53dJhzeoKPBxvpAVl1z0+1hP57X+5v/IlUyZfy4hPk3td3I1l/IInfHpbUVz/I/hEXSy90Qjb5RBjdZ/LqDyJw1YdFQ9Wj2gEf19wrolva3XV8c22qSOfeojN5RcLUS92X3HtvO/zww9NeqHP1nYE2XhoA00A/lrTpphxoAJDmqXWLdughR7Tj33BSW7To3nbWWWevm7fACDJUZUDLaXNaHMo555yTk3UZxTJqDHMBg8qHNt/Mk72IwVZtxx1nh9Gf1u4IhystZwpkcCBpRKMMTpOB5tQYeubSE7YD8yE8wSsjRIq0njwNZcUT7NPhLJ7x2vUW4cQnpJEmN3nTCYdBZqQNoTDSZKy3nJTL4XgDKt+yijyiVAAYo8/YAzYcEJKX/M7nG1fhWIEG0YAEf1EXzkFZHJ96lg7lU1d1MByGB345ZDV2jf7NuUIiVBO32zoAhfozLcFnC3rmoHqkRfmZNp7+8fV0r23wE9moY86dI3dsXgyZbK4jIIOjFHniRKXDH/iRTjmijPrL1CnT29Sp06M8UQiRO28a9u+DSQsg5JBaOvAefVmy5N5c2wvYOiKcIt3oNzmsE/rNeoT8QNmCBXe2b337Wwlid5m9S77hSS5tSU57/cPLBHSmnQtAaL+cR5PLRkT9AhxUPZWROgiFOqYHUVagKvtVtBXSf6ovI22vrfDRPuR2DRBXScBAHQAJ18gh2okHIKdP1z2iL6LMPwIy6UUZ2247MfsOQAVk+V6f3/hlvuCtrS0xkAAo/vAQORTVSf3HfSXKpj/iqb7OOaabLntf7Vzd8aeP0Qch8pJJ3bMvhV7VXd2kl4aM5F3Xx6ONrM9FJ0CdzX3mmnvMPYU/2QE/94RytLOhXhPKAXF9gow2ZQ+08dIwJDfQq4YMz1nLxqRuxtLcAk6TUbQxogwcw8XwSyPCJCJlkUEGlCEtqrRpPNNZ9z2nGT4jjftdCxfmfBBvz6WjjLRpFMO5Ms7e/uFSGHlr1OAPgHB4DG03zr6c3t88w1+ZeCXYs7aU/OvS9qdfTqmiUjk5N5wB8KS+NXTBAXJIIjIiBX3Nqh6NMLxjvlU6FQ4h5KnhHb8RwFC64pjJhNas6eASuU6v+Nr7XfUb1aW6UUqIQ7HryrCTL7cxuQG8dHThlBRT4ED9OTfgxXwc5zh30QzOkw7kK36p480Mq3SnyGEDbY7p7eqrr069vO1tb0vggpSP8AM0KrJTfMlk7a1LLrk4570ccfgR+QZmuvpItw4sxp+2sMLzuQHK6dlbnccde1zy0M5kMQcL0E4QELpD8hoey/L0qZAhI4zBl07JRd90B1AmeH486oRHdExy0C5dZz8Kh+3VfhERq2PjpXwRFGWRR3QN2Kh+ZagOwFT3SJLHoqTSAinagiybh0xk0Qe1iX4FaIm4JOiN38A0/eVSC1GuaJD7xLnUWehGxInAFRkEXuiDjDkkOAbATKgmj4cQS0SoqPTaGsgHbrcYv2XOcxKplUdd6QE/1x0r2zV1ID+9la7zHh2b+C1i59tydEgHCbhCzxnRjT/3hvbQlu4XhI++td9+++VHlIEp9Rxo46cBMA30qqBy3DnpNYz3ZZddlg7NujgcKWJYpWMsOUZprdzNgfrtA78Mr2PpGE48GVzGdbNN+5ySLbYU3eKSWrvhxuvbksWL0xni50kYDw7KPlctjjy2AiNyijS5ju/kyZEvjLIhLA6XfAwx4lg4KU/bHBCSx8rFog7kZPDVLZ/qPfWGYVcH+exzSCrK4hBdz3NkCqPvqZkDzTqH0+DkOU1OLBfU5JxDD8pUlmuhknVlIsd0KE1FJMqJOZav67VHsUQCEkCFIui3eElrUnA5afWjM85cOvJyXKI5InR4+k13NTxCB1U/exPZlW9TF6/Ba1cO7a67FrZJ20/Odb2k5+iQ434AMJvLNVbPKNMcGy8MGI496sij2iGHHJLyazOU/SR+25t4fsaXz8h28KLAT/zET2Q9e337uk5+l67MqQGsyJHtETJ3nfThOdEqaR3bK4NOEnxE/RMwh+OmL/pLYBnAA7gRTTN5ukCY6wC1dgNwq1xEP0CcxSRF5LRH9qv4I08HCn3yM2BhOJE8Dz78UPaZh0KObYGZkEl5NVE6QQo+cV7d1J9u5NHWOVyaTT8u35TsdaSH3oecJ6821hbaPSfxRx/W78jvXl296oF8WNJG7imEV/LYpMsQVUn96Ev0Wmn0TXpRV3sADm/lVbvKKy29OqeOORE92hTIuvbaa/NBzGeLDP/rGuv61EAbNQ2AaaAfeypjxCAyyoY87K3qLdrEiNY5ZM/gMXYHH3xwhtAtIshpSYdP8bJnEO2tVC2foTZFWkOJMWccpZkyZWrOt+CkOAWGldHtQ2NhWOOYLM6nHJGGkxQhURYQ0Z3Vs6/t93Vi+ro1HXT0FZ3lTWOtTrEBFumA8+m3AxTHgJXrrqVMIbcJqNbEIQ8nBBAoL+sZoIkDktdvsgBbHAVQIioVp79P593Z9y/cl16l73meBUScMmclyuA3h4Ncxy+jCWMgL6+ns+xRl3plXgSDDg1peXLvejN3qb+aLr3reCJOlPM3BISvtuFI5869MHkcd+zr+3yaKB8vVHVQQ9FEDSavV8Uvu/TSHG457LDD2mGHHpav4cvnDynfb2DpO9/9Tupm7732bq8/7vVZHp3nXKkoo7fB0wmytYN5RMALHoCEvI7rN5nI4Ty9piMPJ40ci/Doj/qQdHSmT4noGBalezot4EMWc8C0k0gV6noTpRkfQOKh4NWBHXCRZYbsysdDGU8BKdoidLxJtB95Nhtv0nUA7CjDMNrWUTY53APKBSrI5k06sgJBhqf1df0Ob3Pz9A/tBQhmPeWNPkS/fX5YtG/oRf3IkG04dk9J4zdZ9Qd1pEefLAK0RIqU696ku2pz/d8DgnqTnQzyib5mBCl4WvNJeteVo64mmiPlWJNr4rYT20knnpS8yUeWgTZ+GgDTQK8KGjVIjLA1dbx5AzQBNIZcRJvSucWGGD0kwuCJ9Kyzzso8Jo/iwVCi4h3QYp2zMLwFrOy446x8GvaWnnVbZs6aue5Jl2MAPvBKgx1OJY34E30SKQfmLRuOlPNhXDNKNGbcORkOrcBNyYtvSpNydVCXzjScSMoXji3BU6RXXtYjkkqj7qJVHFFFvDzhS8M5VBRLudKrS/FQXAdAY84peHFg6sqpVSSvO92uN/nVv0+6jaf8TQMYRJ05wOQV1/ocELrtICvzxh+HhrJuoR/RExEjsiNAF5hTvrf4yNOPuxNU5vgterQE4OTUVq1e3RbMn5+A5s1venPbddf+liNdKUNestjkA0AQWefOndtuu/22XJrC9+bwJGeBFhEZ+jcMd8aXv5xyv/HkN+Y3xAAEbaUcOidbOtLgr90AQSCFPtWPM672wwdYlB7la/Jki9/KSwcfadSfLPJ14Nsn2xveo3uyqgdQEiIkb3XQj9W3AwtDuUCV+kQ7h3z6SWTNPmjor0eV+uKMeBku0/6bhhyZNvKQJf61CVEXoFN/qiiWPrZ82fIEcWRVGGBPPksTWPKBDEUdBAH8/Zty2gtz+qYnabM/xp8yHlj9YNYHKEJkU5ayff7G6vjWTvLgAAjh7V6sCfQiXfqePpQvYMR9oY16P+z3Jpm1AdInzVUiw5133tkW3rkwl5jwBi3ZAftU4EAbPfUeMdBAryJirBFH9e53vzsd+dlnn53giVFjpDkOlAY7yDyUN7/5ze173/tevm3HuOJT6e3jv0zrN8fOsDLyvm1nbsV111+XvzkajqwiCeX4feGdg3HOEAnQxJGQpeZbAAHKlb+GShjnihaUc0cVacq/XuXM60+61ENs8jH+5FCWa5wkWRh/vzkNjsrcE/w9eSs3IxVRH86STPKlwwrCixMRsaEf5RTgwbecsCFS6RLsRDmORcE4q9G5OpxRyUR29cNXOnw4LXPFaohMnehP+pyXFbIqi5z25DQRHhBzbvWqVbF/IleG12YzZ81KPspXHvmz7iGLvbqKiohiXHPtNW3psqVtv333a7vvtnsCEjohG9Xjr37Asz40c+aMdvRRR+cip/iTnZzSZd4sM/pgZHZe13JNnbINQkf0VH0hgWWAHvN2AGZ9i5OnbzrU5h38dFBD/tRJOHs81Y3eAKBeXgdLIkf42shCJsPJIix03vu5OWU+M+Ntya3yIQBYqjc1H37owQQkwCWQok9alNO9kG/+xXnlI3OCyGreH/nVLcuJfb/XzOfq84kAElFHQNk1+bSx4S/nPbSoWxSTALTazf2ubpYOQAm2ogKuk2/ZsmVt2g59gr06OE9mkUZ9pr/8YOL5s6vlkzHlCUAqgqV8fdWSBx6ylO/+8t049/CcOXOyf5BnoNcODRGmgV4VxPgVOa5NZMlkcEsIWBeFE7HejmscR6XnGGaFAxWF8uacNEBMpWOoNxnXowOoD32IwKzJuSGu37ngzrzOYHP2HAxQxOkCPow1w8ug+jRDzisKp+gJVMSDsbZxpp6kGfwJwSc/FRGOzGRaEQQOlxPKN4TCIIsuGCaseRaohuVc5ww9ZXMu6sl513wW6Rl2Q1bJJ/JwBtI5n46Cg+fcgzgz6zCpL93kuSiDQ+SYkDxIGtfwtPk2nn0BLtfw4MzIQrXKtvebgyr9VPnkIqdhFU6KnjcNHZOVXrWVespHJtcffGB1RjXMrbnt1ltzKOjwww5LEGpeWg75RHrycLR4ZP41j+XbWvrOOWefk072+OOP7xOPgzhP3ppOzG3yyR1gSTsffMjBbeaMmevqiifZAQ9A2/kEh1Gm8+XUi/q1rnfRJ1FAfSmBT7RHzknaxiv6fRiVrukAAFIWvdKhKNOyse/kOQcUAyraSB9JsBHAQLRGnUVscqgp/gAJ4AA/uqmoF17m/WR7h8wVKcMDYLQOE6CmjbYP4KTPZp+I6nnTkczq51hbuifJpDz3Drm1DTCj/fDpZXU96r/eIqR/fSCjTMFTlCfnJW3Ro1nyZHr3buy17ePRz91bhkG1m75iUc1cWmAsSqlM+clJJ47tq0+617KvxbGht+rngKUo5Cmnntp2nj079Q185f06dq8MtHHTAJgGetURo8dA2RhKDgz48d05IXO/PRUycjbpy7E5z4F9/etfz2+C5RNsEGOZBjN4GmLg2Dl/wzyGgwCzhcGbIbYYJuehfKCKQeU0/GbYfZB38aJF6RyAKm+dpdNIh9plSeASsinTUzdzW6+Uc0acBIPNSHM8PpnhHFJOn3sTT9fxdJ5pQw8cUjlqTiESJl8yZxQh/vCXP8RIJyF/Ao/QQ3eMoj99KE+iTQ2xxXWT2zNKEed9bFYUQl04QnIWEMKz17G/dag8c2+UyblktEThQcqTHiiVtyInjunANXVRLw5W3ehTpTjiceMMUYVTHHOAV111VYCam9tee+3Z1+JKwNGHo+jYJO+1wXe7sShOYIAczvUCgXK8Tad/oHTEoWP147QXL17cvvud77b9DzigHXXkkemU6Uw91T3nsEVbksOe5ulFXVAuMRF/XT+9v+VbX6EDPOiG7kXhRPSmT7fIZp/ALgImIpLzvwJMZJ+OP2DpiSgvQcjTUc/gZR6et8iAcGDx0Uf7Z1t8nw/oEWkBLLRH9aNsw7hWEVPtrU7KImc2V1x3rB+LkOFjqFV7amPtoj746Rv6pHtDWgQcyYvo3sMAYJbAx7BetAv5tRe5yFHAL0FSyOZFBW+rPfxQn6NkaRHX3VdkwMvw4aOPPJZ61r+cM0RnzlQ2RrS5+ogWSpN9LMqiYzwk0Z/cz6n7kDMjaI+taRdceGHyNNSLR/bzzTw8dF0OtPHTAJgGelVRGfpRA+WYo5sdT322Sy65JN+g81V5js9WhtgmyiTqYBgPEOL8umMViTLBuUdqGOMObPrchtm7zA5QdkOu6LzbrrsGOGI1e6SFceVEHHNunBieDPHEiduns6knYucRRwwIeaItZ0S+Bx7oQyCGCxj4jASFc2bYs6wAcZyJMvHj4PAEijhu4CKjEeGYMio1BubUheNBHC6nCIxw/PiQIRgFv74m02OPm4czLofFCkQBHmRR3tPPmPTNQfsafI9wWUJB9USNbH1VZuCuD8dwjHh2R9UBBYekPpwRMgyGl6gR56s+2ka6xwL8cf7bbLt1RiboSR0sHHn++efn53SODEBDl8Ar0ALoOd408js2tPLoY4+02267LYdZzXN685velMNQ2oge0gEH3wceWN1uiDa/+OKL8xVyc5usPJ4RnPgDWDhl/UW9tI3fIjQ5vBU6Vx9AXJ4etdIngfkeXaPLmvcFeAAFopN9LaMOVMgtf/UxAM/v7B9xXbuae0b3pX/nlUG2TTcL8BDAQ5vLSx90jwfwn99HjDYgi36lL9E7/toAn0ie+dx5PqAc+DPb0wX11Ef0O5s2eSh0oN4VgdJ++mS2TaTBL+sa8qWMdOEvLpBdn6RPBZJFn+lR0r7gKtBEFzbX5NGH1MFcLXzUzeaeci+qmzlRZML/sdB7RiDj3iJj3QsAZ0a2gqc8q1c92ObdMa/N2X1O2yn6GLnomHDafaDXBg2AaaBXPaUDCYMH+ABD1ly69NJLEzSNvhVXG4Nq7gkyxOKJXtQID0CHsedUOU/GMkFFAAhvyDGoF118UYKIXXcJ0BQGFWDh3Dk4jsY1zodzYYQ3jSf9bsR7JAhP/Ps1i2E+Ho6nDw+YvwH8cVLAgPScEYfJyHM4his4ZfN9OCzOlnz0wIkz4FUOxwQ0ZOQonK1rgB7QUc4JYOsfZxXN6rIadrHHB0+yIW+siSoEo/ytvnE509AFfvSobJGMDjg70Fuz5rGUgV7pgtPpEa3+Sj2nZcVxvHL4BP+QB19t4DoQ4zdHjA/QaWHSK6+8Ksp4qp1yyqltx1mzMj2+6k8+zETq6IvjTIB13vkJqk859ZRsd3VN0BAyyuODu6JK+ANhxxxzTDrudfoN+emS01e/0m+CvegD+SZZpKsJ1OTpgAeQ6UNf8ukL5NUfAlPkqvL0yyFrm1xKYIuxyd0BgJWhHoCHyeL6gmFUYAFfGx3RD/3jDdgCS8p3jv6RPqpv0XkSPUXbGZLS3+hKnuwXscfbeTzUTQQJMNT/XZu47cS8H/BQt4rY0Qfe+k8B+6hG8rIYp3zqIY2XK/DW57Sv6LF9rnMWcmwXDyDKd17dsk9HfZUpn3rre/Sa90RcJ5uoUr4dF3WX3z2m7jWfqw8N9j6bdiD2+qNI3sKFd+XQ7dvf/vbkPdBrkwbANNBGQQwmA8tAMmgiAdZLsewAw8m4us54lgEFrkwEFT2w9yYdYlCllYaTS+AR/IGbiQHKGN4F8xfknCgGnFM2aTcjJJHekzQDzOmTJT/WGbwKjCFGPY09DxlewhN7ASxOWbkMOGfLkXBI6ezXdCCgPhYpNPnZkAP+8jP2HGx+Syv2NawnLwdfQJAODIFwpOq7TTytk8MwjLpw1BlhKLQRRLdASTlK1wwlud712oeXkHKc4zzpLh3a+K7TfE079nQsP7mcTycX6YEW9aZvPINN8iIncOL1dBPsXeDQgeMlSxa3t7zlLW3PPfZM+egCQAAE5KU39fG2400339SuueaaBNO++VaOFj+RLPo2V+XiSy5O/XnLElhyns6UjRc5yyGrk0/SAICGGJWbfUB7hL7NI5KXQ86Vv4OUqw/QFV2QwRAovvpDzpGLNMrI9g0dinrgmfqQLnh3/oYzOw/XEJ59LtQ2Ubfej7Pto4740bsyRKcAcdeAaH1H9EYb0L++k9+ki/LpR78EdJSzdOmyyLdFu3/l/flb30TKIl/eSwFI8KpjMgJ67p0cfpw2PXmK9FiiIKOJqdMOtsmrXyZIzKhd/3QJUOeewjf1kf2jL6NQ+W3aQTnqJHKnjwG1GXEL/sDoihXLcyV293IOKcamDelQOV/5ytfyBRNzH7VD9peBXnM0AKaBXvXEOJYBs2cwGUkRp4ULF+bQi0nXokrOM+rSMXycpmUGOEigiXNiWIsPYnS7Ee+OYOoOU/ObUoaARCjw4Qg4eE6RA5JX1KYb/R6dwVN+DqkcpDk1jj1BG5Iw18U8ENEFRp280ole4emcuTkAi2sMvvOe4MlOFlGqegpWV0/KQE0OxcT1jB6EHBmVCkcEFNTihEABeeiUI8c7dRFOyjnlc7LSIE6Wk6khIs6M40vnG2Wrvzpz2s+EA+X85DV8wyFxTvRFLuABb/hMhMvQSfHBXz7pOF/6XhlO2puRt9xyazvhhBPbTjvtmG2O1EVbIPVTBxHH884/L/sD/b71bW/NN8bUi1xkFQG5JIDSVVdelQuVHnzwIW3/A/ZPfeIjjWN1ojs6VJYhrewnkUb9pQHaOHagUfnKACgN2WqrOp/1Cx7Oiaj5TffqXNdDVVkfZSSAiLSu01XP15c8yPYIWRKwRNsp37AiVbhmiLSGmjJ/kLLp01w935ozxKq/aQ/zi8ggEqNOK+9f2XaY2r/eX0NcAKSFXWtSNaAOAO0wbYeUzUZmm/6jPGCNvPSnP+IDhNIJHWiTpNh56007VV98/PE+36j6Rq9/X8sMb4SP4wR+cSzSJb15YO53sM41BDjpn0BtgTJRL2TC+Je++KV4mJqeQ7LyrJNtoNccDYBpoI2OGEoOwfwkxtHTpY+wmhButW9OhNErB5wf9Yx9rdPEeJYxZZAZ4wQcwddTcw1JLFq0KCca77rbrjmkwAFJzxgz4hnxCScSrNfJxAmlsxnbAw7bTtwmHYatHGMCpXC+5MRTmbk+0ZitNpmX3QY66km5O70+hAP4cEAcX4K9+EvZo86GtQy/pdPBM6gAEBltHIdylQ8QlTMDbpRV8nKy0jhHGpEI553joErP6vrkU73O9JRyh4wowYqn+pCP8tRdeaUjk31Tf6ErE8OBPdG1u++6O/XvW28777xTmzVzVl4voITITFGGIHNu27Ll+RbciSec0F89jz9OHAGrJoDjadFKn77YY86clId85E7AEn/qSk/y5ly0kJeM2lt9tJ3rGaEJPUuXzv2pHgm1ZXsH5flI09ONveofZTrfeXT9Ol/t45whsgQRUZZjMuEpb0X4ejkdzGvrjAgGX1FH1+ncsGL2hwCA2gSISeAfMuOl/atc947InWN9UntZCiHbM9rLsPVDY5EivLSh/ORTHxE25WoX/TVBZ5ST/PN6XxVcFAhgpnMyZF+NvKJ3m2zS9Yc3cq3Kog+/XVeecvRD16PY5AWU20ubwDTS0q96mxxuCA4PoM4SJBaqnDFjVn5oF+mTA702aQBMA210xFCWUQOaLHJZkYfvfOc76542GWrG2ybS5Pfll1+eCxMypCIMrjGeCLhBogScBOd0y623tNtuvS0jTZwJI5wTU2PPKXGwwA2HgL/fjLmhBOfwFP5fR+GA0oEGYFlnmMPQ55BSGHlW3/ydWoqAbM5zYiIHBTIKtChP9IHD5BTUy7wM/NKRxV/qIPIYlpGPA06HEvzwctyBX0/PUQIv5FRfw2t4mEBreMNxr1t3kniQM53dGJBIBxpV46yyXkHSltyucqYJlCK98pxH6njLzbe0G264Ib8t+Ibj35DRQeVII4+N3oCXRYvuaeeed14C5gMOPDDBknzKksbbVoborrzyinDWj7Y3vOH4BEtAMyde8iZoUtfgKaJUgFa5HbD0OqiYNnbeEBAdSQdY6RepvzH9cOijcvs2nn2+MRhggd7IgKSTT7RFe3DwJuB3PZmDtmVGa6RDxT9q0PtQ6K3ADiCNNxAFfEor+kQOQ4YeGsz5ArZ7Pbrc6qXfGE4DtugwwYlKBw983Vv6tIhPgqqg6qf6rm+3iSKRB/V5cONy7pL+iV8CuJAz2ygIyDUULvrzVIDO0qe09KvM7LshKx726lRgjE6zjpuHjkMmEVr3hmUfRNSsJ0UX+XHj4EmnVnyfe+HcdsABB7Sf+ql35/nsVwO9ZmkATANtVMQ4Mqb2yDGjaVK39ZpslhRgUA2NAUXpBCPd9OnT2qxZM9vlV1yeQz0M6s6zdxpzGAFQwiluFk+34d7C6G7epk6Z2iZsMaHNnzc/Fz0UvUogFhvHwJCbG8QxgABezQeEPPEDACJB6cSifE/0HBHHYn6SMjkS9ahjvDkleTgH9QJyOEGgTHn423s69qTO0YQomR5vjtP1rXyxPupUEY2c3Bu85fMKeHdiY5ExwCqukWXzzTmgtQl0nOfUJXzsMVEga+H0V8TpM/UavttwDv3lxPIEb5zouASYeNKryEv3ucCBNusrmacQQXhLa1iNE7vp5pvz+21vfctb2rKly9rO0a4mBafcKPhwepZ3OPfsc0Nna9rBBx/Ujj3mmAQDnB893nD99e28c89tl192WU4Wf+Mb39h2mrVjlm1la8BI2hzuiXpoCzricDlYwDOBQzhdYIsuAao+RBuAJ/LTu7ypy/idEbXQt/KDXWzRX6M/0BPd5AsA0b80XEbstGWAUYSXYU9asm4YQPTww49GP9smyu5zb8xLo3/80VNPm/i9JvPSr2iLeshLX4ChNjA3TD6AGujQ/3Mto6gbUGy1bv1k06gboIGPPmb4TVry5rcV44/O8lwIak8f+iv+1UcruqS/qXv2z8jrgcOwK50rRz95MO7VnPgdZeqzDwbAsTxEDu0GT3qshwYPI+rmPlJO9sNIk0N/AdSyn0Sdch5e6APwpWO6sV6TxVC107nRL9gHK797SKIzMtoP9NqkoeUHGmiggQYaaKCBXoCGCNNAGxV5kuxPnH2YozbkadZ8JREGq317w2zBggX5tlyG9Mdvkm86iTR5G+zGm26MJ2yriW8XT6QWs9vcCjoZ8xAI2Tx+S2/ewzXXXZOTra0D5QnX07Cn1T6/aJOMJnn69yTtCXnVqpUZvci5OmueyEnbokyiD56STRyWXwQHX/KJ0Cjc02++2RRP25541cdcGenUFU/DDoYj6wlbFMRx6QUPT835NB9P3Iab8ok+yhMBExWQxpP4am/cRfneMNt8sy2ivB6RWBNyE0ge+qHmHLa0QGTsn1nbn8a32kq0SJROpIr8Pa9jERRDQZ7uRVfUw3nDQuZH5Sv4oTOhilUrV7VLL7u03XHHHW3O7ru3I448os2cPqOtDR2sWL6i7TB1yli06umMWlx55ZXtogvntukzprf99tm3HXXkUVlfERBvAd54ww3t6quuzmGeA/bfvx1x+BFt8qTtUxZRHpET8ld0SMQGf0NhIih0mvLFNenIa6hpXbTwmT63xhtvIi2iSKI1+GUUKNpaBE571LDm2rU9Lx3RgShWvlUYOjIhvb81aBK2iKGv7T+W7Y+eeaaWCoi8T/foYS5+GTLhQx6RGxEbddRPtblJ24bUlO8e0X/s1XGcQK12Cn2ISMrzsEgU2TV4yKleZMBTH9Nv6006vw0hpj6iPsrpb1L24bKcKB5/OdwXm37jjVC6pW9zmu5bsSJ1LurlPnFvGWLPCFnIKqqZsgTpi47zxYaQn/71Y21kJXoT4A3Jy0uOlCd0iUSGpReN9bHuexbd0970pjdnlNYaV0g7D/TapQEwDfSaIgADQDIMwfBeffXV+eq1JQV8poRTMdSWn1eJP3OaYtemTJ7attmqOyZOgFNimBnXKVMmx53U8tMZ8gjjc1IonW84CtQdf0unZSgEGDHnQwEcKQfx4AMPpnMAUDjNXGQvyrBY5sSQGQ/lkp3TUj4nnk4wHEM69HCOhkCUzaFwShYRBAxczzVxguQt4GQoBejJocfIR4Z0gOG4OBplkbM77D6vS/4a7iA70GWOSPig1A8ClOgEH1gqAUjksRVxbAgf5/FOcBI80mlH0T7JccEFF7Y7br+97bXnXu2Np5zSZu+8c8rrjUWycII+uHr//fcFsLos55Z5s+l1R78u57HlEFPI4wO7Z33vrFxfaZ999o40h+V1znlM7NS5yebk7bq0Svz26wAuWdU3h0nHCAjjfA2TAr3a15ZgI66pFxBE5xjilW0EjEe7dpA6xiyo6kQH8iaYCX7ltJ2nLzx89BhAQrleU1wD3Aw3kVG/Mmk6l3OI+mijBPMBMMiDv/RAOZ0aenNe3+kTxQNQTPDQ0JeCAHjNOaJP8mR9o3xgCbDT10yid6/o69Tq3tL/EPmAFbK7B+hbWqClt+PWOfE7z0W9DZ9bQR/RF150AYjZe/hxDMwDSwnGoh5kq36uvbQRUJRDmHEd0APu3FfmsnkD9fYA5EvuXZJyvPHkk1PHgNhAAw2AaaDXFDHQnJ01lIAiwMlk4Lvuuisc3WP5vSrGU9TIUyyDbT2n5UuX5evUrpVT50UYZoBj4qSJCYSuvOqqtiLADcPr6Z1zRYz35MlTwnCPOabgIYqUzibK6E7PfA3Apb8VZN4JY8+QM/DSIHm9kcSZiRyU45HWMWdVk2fx5Cxc9ycSI085Suf7MgYhR4Cakqdk4OCkI7PoDKfrPB1yPPJzyOq3eehGmuQT6VECi3CmJuyarIvXOicfZTlW3igwqOtkcExnPo5rxe29A+CccMIJOSeNNny3DQgwt4kc6n3OOefmhF0Ro8MOP2ydw6SLiy+6OBejBJJ9oNebT5wziiLXAUUozUT4wHpB8V+cUxdzdsjrOocLIPntWv4lsAy5AjyU3pxRD/Xr6x71NyA5eOc6SFgTehLB6jqzVTvYA1yOCwT4zdnjS2f4AEr0CKyTU8Hy1Ff61ct1fT7rEJSRopI7qm2BTUS2BFsBTtTdZHW/TY72+RHp9W3fLNQP8CSbT8i4r1ZGn02g3dURDxyTE+TrG6KjZKYfbaPNRDXdSxl1JXOAKHOQ1M9vcuGvabQ5+elBn1Y/keOup6dSL/qD+5dc2hovOhVxc7xixYp8s9UbtNLl+llRH/oBFgHqk048KVf37+0xAKaBBsA00GuMGL9y1hysSeCHHXZYhuBvvvnGjCj5yj0Dz5FOnjKl7b3X3vmdugXz5ufCla6J/Ii2cAC5ptGE8W3GzBltaThqE8Y5nJxQHiBCWSJAq8I4I85r5cpwKGHYTUBl9DkF5z0FJ8gKRwNwoXxDKRzz8mXL8rzhPdGEdMZRH46HHBwKR2QzqZuMnDCHxBlJx5Fzdp76OUrOjlPiDDkLvw2JSOPJ27H8dMWRjBuZ9ognKmesnhyk8skiDwenjkBafTSVLjjPcvTyqkcd28jUHeTanHx7xRVXhPPapZ180kltx512zLq41kFLH0Kk96uvviqXezj11FPbIQcfkoCPI11x34p2zdXXJDjmpA3nua4O5byzXI5TNChAmqEm50R/6MqQoXNkU25f7sDr9x3waEPXAOecGB/H0leEBVByIAIFNABn5NaWD4mQhAxWhS/d0TvZ6YV+qh2qHLID0wAAgEHP2kBfkAaQz3rFHwAFlAAHuS5X1AsvK6zL71h7Aw594vja6Id9oU5pUR9S3KI9EmU9FfrZIvjjq089FODfcBpeZNLeQIn0ABze9AAwAuvuGS9GkFd7kLeiT94QVF+Tr3vf36xHw6IdPCTU8HUO54Ye/PZxZHy8lGDdJveeui9dujSP6XHLLcen7pVJrlwoM+5xbaxfSke+73z7O233OXPaSSefHPUIEBd/A2AaCI2LTtV76UADvcaIoSzAIYx/wYXn5kKXDOnBBx2cC12KZKSDf/jRNvfCi3LYjWF+05ve1HbbdbcEMIzxuM37K/wPPfRgO+/c/gr7zFkz27HHHJvDfV5XZpw5C+X64/Q4Zw6Bw3ArGjJwnUzOc9ychXkg/FZFqMiADH0BHw+H/FOmTkkH6AmbMzYUmOAlHCBnhScgxAnlq+khr40O+twlT+597lK9NZRvz4VcHKrzm27anTW56cl5wI4zX7vW22CbZB3xVUfRLmnJsNWEbVNmwyt0mvJE2TY6xCfLjPT4crwXXnhhW7rs3rbrrrPbscce1yZPmrSuzfB/4vEn2qK77871k+6++642KcCs78mdeOKJcbW1+fPuaDfccGPqwdDpHnvsme1BPwlkKDVI+QVkOHjDTn10rINZYJIetIlrIhXkBEoSUKlH/AEV9GtfQ53ar9qUYxYtlJdMeJv7BExx1ltvNTFLdZ1jp1dREnvtoxz6l5fMHaRqv943sr9EGaInjqUF5ryJJ722kdcwITCg7+ALMHsTj5zWUiI/GUBF9XZ9bRQCULZo4yg0nEecj76Y5eb8pD6MCKQjetDf5AfU3CuO9QWJe3+zwOumqSNl6jdbB9h3nq5ThqgDIhs5/E65o4/qR4/Ece+DjwaA6g8GNSxHP/RBzwBTiL1Of6VPZcpjtfJvfOMbbcb0Ge0973lPAkH66jQApoGGCNNAr3FiMBHjufuc3TLatMecPXLC8HXXXx9Oe2WbOWNmGvF99tu/PRXODfgBnDh+nyUxJ2TLrfo8FA53zh5z0gB70jUfYsb06WHYt85IAiOfTjUcgqdwxjyH1TjUeGJ+5FFr1GzBtyRocMCBc76cNOfHwUhvkx+v5BtlcjCcK3CWTi+clydx1VRHjkOd04kAUZGGY1I2PhxZRgE4FfNt4jywwDFxLH1JAM65D6/hJR++OTcqZOIQ8eWsDMdJJ7+Xcp2zjRLHhnfxIY+InsiS+vg0iciSOmXeqItXwg27XHzxRe26a67Nuh12+OHtwAMOzHW0yH9VtOGFF87NFcEPPvjgdvjhR+RwkbSp75AL+Y1vOngONNoYGMs6Rv2VRw77BIKRl5zq6EPF8og2qrd2ECEBDFzXH0SiSs/yInXVTkBWLiwZjhkfq1grl/x+i9hIS0fOy8PZOyYz2Qs8ZeMFyVtEzmzHsbrqU/qv/gjwkrnPaQMcAqRl5KYDOfOV1D+XyAhQJK3+BJwYonvsEavTB9CK+ipa/1wX9Yk06ux8ly0OQyf0mHOigidApzz6dg+RU7SO7rP8OAdIKTOHH6PfVz/VDuovWgaUOuceWXn/quxr9EIPgJW8+rv2yxca9M/gAxCJxunfzhmqNSHcw5A8ZMv2inyjkdWBXrs0AKaBXrPEIXEO9oxv7NLQeqLff//98+0cEZvLLr+sP/WuebLtudee+dFbC1WKfviIKx6bBajJ78FxsuEodttt95wPZSjI9+ysYWP+j+G0HiEyNGbfv1Vlfo3fhjW2j6dxPDkO/zhTc4A4iQQX4WCAKtEo5LohGQ6CgeeYOTFOR9ocypB3y3Dej/UhEfxROqZw8oAa3iICHFcOxQUP+RwnhX74QM5JOQU0HNOh+SfpkFK+8SFznxisHhz12rXjcnKusuWzL+cnv43+DKlZYJTTNbS21157dMAQ5bhOX5ddelm74PwLcg2mww87ND+KOmvHHXMYae5Fc/PTJgCBoTerdmsv8pYjJTO9kCPnrYQuAVO/U/b4zaFnukivHeiFjOpC7r5e0hiwiT6jXUVA7AEbzj+BTeqmAyj5vHUFBOCZQ1NjulAuHVVkxW/5Xct2AFRibyNT5QEGyJBrcmUEZrMAw1FX4C2H4gIo62+RhlwmZpM76xVtSg5p9L2obspTegrJU4Yto2zAb9ttJ+bCk9lWUX61IT1pI2+sZb64Diz2Ies+pIg6GO/Dfs7RQ9YzAEyBwtQhnYzpW5RS3ekET30IoLlvxX0ZLVQ+omNvs5Wu1EE67euNUS91kBPIIpP7wKdg3O/mLLlXfbjbQpWuS2sjA0A80EDDkNxAAz0HcUTmXpx55pk5cdST6z777JMf9mXYPb3+0z/9Uxr8bbaZ0E46+aT8PAfHmE+n8efbW2eccUYaXm/n+YirSAmq4QVP0eUsOGOOiZH31lZGNtyh4W+AHU7A20OcG0Dmug0fTgbw8tTvG1hkIDPHn0/ukaecDsc1cWIAM84mHAL55MOD3NKJfnAcXtGvCFM65XA0ogS5SGU4Or5QdCajIeEg5eOYOX4O1ZtXHNgmUT8OSh3pVkQOqFJvYI4eRO6uv+H6BKWe9JW7ZYDVx+KatrB0gvlmQBU+Bx54YDvqqKPyvIieZSJ82oSshlNPOeWkNjWcqm/l0Y3hJqS+3rwDXIEL8ubcmKg/fY+pPHVH5+pHJ1mnOKeO5JYOSHSgzA7sup7T2Vd5YWZdxwtjAAHIBaJHh7QsS6AMeQFDezxdBAyAPMfaW/3pBJGbTvEvOYF0iS3HgIc0IikAci2yCcADJNoJQO5t2z9+rJ8+HfUG+ERjNol6ettum+0mJp8nzbWLegGa9Km/KQfoVr62BYz0H99fNDevwBXZPASoi/snZQv9VB1FCWfMmBly9egp3Wwb4AcIphMAPyO00R+BIiTd0qUr8oUOvJSjXfNa6MU9lfJF/gK92tC8RUPolgQBvPMeiLzSDTTQKA0RpoEGeg5iODk8T5wMLIDEoXsTiEH3NLrXXnvlE+rChXdmtIkT5ky3nzQpHSEDLf/Cuxbm+kGeYhlmToIBZ7Tzleow8CIWgANnGBY7nQleHHl9rsIKx5wR0MNBAiIclGOOhoOST0SAzOVgRa845Rz+iPzKdYHDEG3gvNWPo8gn9XCOAAxwZuVn/DmQdOZRHnBFNqDPeeUYptlmGyuId5CnHsAXPcr3zNgnLdJhjvEELkSwVq5a2S666KKci2Ru2Nve9rY2ZerUzPt4ONrbbrs9o079w7mbpGMTBRRhuPTSS9u3v/3tvIaszKwu8+fPD1lbtNMeKWd9jkN+9RL9UjfO1zlO1R6YqXlJIjTqBlBoEtcNVdEnHagLvea8JG0Y6SrKBEACctLQOyfuGqL/bJ/43cGlj/n2N9HoPwFa6JGO5AdqgHblJ2CLNiAD4AvcJCiOPiEP3eIvbS4nEX1Y24i+ATrmMwFGrkurjfQ05SfYivrp0/Qy2VpeIUsCpNjrg9Zhstr3plFHsuvj0uhLwSbqJRIGdIXuog/gZQkHZSHpzbkDzCwJ4TND8uJRbeCtOPKmrqMd3CsJUEMXQNN2wH7U2dCicsjn2qRJU74PJIlGudf6Q03/ZiM5UtYgAFs/0W45bynS4WNT7kADjdIQYRpooOcgRrOMNCNeEQ6O2+vIjC/QxCnssutOuTTBTTfdHOmfabvvtnvOqTG8BiyY7+QtLoCAo/TtuiOPOop/GRsK8vp0f5uIYecoOC+Oj+H2RC4qIAoAqHA6QI3r0iHH5Qh9qoMz5qgVwkk45lDLCeGRbw2NRaI4HY5DOsCN4+7ONFhE+vwdusArHVjUU4TGUJwyyYYXohNAw4TmdMxR56cC+OBPH8ADnt6kuva6a/NDun4fcsgh/VX/0IG3CjnaJfcubUuW9jeffAPOmkmWehAVUGeREOc45r333jvlE5358pe/HCD2znb8CSe0PffYI+enAFKiJeSq4TTAANGH6pKb03802kLb0If6mDcFBCWoSNAZIGqsf3QQ2UFj//7aptleAFCCqNCB6yI6QJhyAQY6NUQHBDh2Xr+yl0/91CeBVJSjbGAk9RnXHnzowZS7JrCXXvUN55UrKmQYzh4v17W7PNJLC5DpowWwTaS2YOsTAcYAGVHCxyMPnlsEgAeYHo96xA2SgJfMdA78A5Jk10cKYKtzgqkt+rpV+jlwgh/9mxSeQ4gBdrSP6JS3H6uv0L8hWfPRDAu6L6MaWWcAt3+CyPpPAfSCd5arngG6kHKkJVPeHyEnnc+dOzcfgH7lV34l+1aWM9af5R9ooFEaANNAAz0HMbA2xhN1I92fdjkHDsZHWxncCRPG54TxW2+7NfcMsZWxfRTWMNxOO++Uby55E0d6r8kzzpYssBK1dDVUxqlwYhw1xwYgVbSCQ+G88jtacetKz3G67tVqgIAz8NQuQuTjrIBBAiNOIP7UifPisJQhusRZAQecZc3lMZQCMJm/JT9TkStVBz+OW+RLfmldB8SUz+nW23EZ+Yj6GFrZJE1NSDDmyABIUSHr9UwLZ2VBSpEFejU36Zxzzk7gMmnylPbGU9+UaUVZgCh1AJCAKxO6OUhyOV8Oj64uv/ySdsWVV7STTzq5zZkzJ88BD0AA2bK+oS9AUj48gSnRQXVQf/PYRHM4ZOBMnZ23/g9HDSBoA/WqKBI56L/AMH7aq4ZjAQrRyBpW7ZGfAM0AR+iP0y9gSn/KyPYJ/bmmLPKQGWCRh06BsgJ00gAKhnj1AQAtAcHYcKAojXoDuaKbjwSAsJ6ROmjHXJ0+gMuUKVMTqGw+Bjo2JYf7IHQ5Ln7T5baAZJSjTHJagRxwBMoKOOn7eIlkkRXAnj5t+joQA7Rb7FLUD8jSJ8lXSxe4f+67/74ODuNPucpbvmJ5TubXXo8/3gFj6U5dyOz+SP2M9d377rsvI5OO3/WudyVYkq9o9HiggYqGIbmBBnoeSpAxZjztbRws4w7kmEwsumE5AZPAK4LjOoewbPmyBFEc2xWXX5HOfdasHduOsZXR9raX6AdHA5xIm5NjwwlyhhwCx+o8pyeqkw4/nC6nLA05OcJ0aJGPgwI2zD/xJF1RgIooyMcpSW8jr718eNVTOmea0YBwWJwNIkc65EgHKODfJzj3IUjlcLbIZFnO3vwVegGsAB5ROmvkSHviiSflMJyo1sUXX9wuufiSXGl56tQdMuIk2nFvAChzkzhCQ3GG5FwzT4m8JRvSRlWXGQFGRduuuurKbK/+MWIAeG3KJC19ABqO6cfwKFkmhAMmu/oCV9qGPrSxidVZRpQrn/YCQFOO+A0s5ByiSFPDcFFkyiqftsYXcHUudW6oK/LTp7KAW/oCBOj5oThvorW5WGSUFhBQXgItYCnOx89sL30FqDP3p/QBCGWdQ3481VdE03yiSJJpABZ9C+ix1lJ9rBZjYFMUTd9Z89jjAUr6sDA9AfJ4kyvbJH4DguRSrhX0vahguNiQp4jhPffck8OZ8vnT1mSVv9aIStATYDPXnIoHAXvAM6NH6hqykVu5Jn0bhksQqh3HQJ7yHTuvP3sDEzD/hV/4hZRDeSnD2DbQQBuiIcI00EDPQQxtGVDHo8ShjBrXJ558rM27Y16ucHzbrbfmq9ucK2fCaSy6Z1Ead9En4OXII49MsGD+xFlnn5XG3kKKjP+cPfbIycn1VpWiAR9Dec5J6zyHpnhP4p647TkJjpdzck5EhRwiCqInjtPRBIk+9VfB+9tW5AG65JcO6BFJs2o5B5mOPc5zxOnsg8zfAdA4IvUin/k4IlGiBRw8Isv9y1a0xUsWt6sD+PjMhTeXjjjiiAQI5obhe/1116eTNDdJPZctWxogZ3LbNBy3lbnlEQWhC0QO6dTBvtrq2fbqw1pf+OIXM61PXSDRMekfCUChjQytkZ3+gAlvghmSohNpAAJ5AARDrgCn9nSdM8dLBKUiSKIggBh9cfAAKf2VrpUlgseJa4dcCT1AMD2pGwfvMy+12rvqKENUJ/kHIAIwtCWwlm9xRj3xld6x1erpATCdNn1aRlyARHntlVUAVx28GWioj56s6K0PPRYypk7jb/MAkY4fCRm2DpDz5ONPtKdDXwAh2eQzXGgoOMGxiE70jQLu5EQidNWf5HvggQfzLUNApiKjACs96RsAF95AkWFR/VFdtp24ba9PpPObbOPHj73RGUSH9OBhhB60rXTf/OY3E1QBS9OmTUsdDDTQi6EBMA000HMQI8sIlxNen5yzpSN8JhxHpAMcPLn6SKyhhKuvuSad7XY5efbJdJ7WaeIIjnndMQkSDAGtjvOXXX55fvjXgplHH3V0RjU4PZEqUaVaBJHjYeTz1o3yOcDwZ/0pOhwNx5Bvf43vH2glo+iP9OTzOQsOiNwcoY+vcujqaUgsX9uOcsmGL4dYc2Q4Ok4fr0jej6MMn8vIN9GCpws5r2lsaEqU4667727XXnlVRtNEiHbffbcs5+FwyJZdULb0QIB/HKHIB4e23/4HtN332DPnuUi3TvbgzeHaF1Vb1bln1hq2aW3hnQvbBRdekMNQQOv2k7ZPgJnDW1EndRD5AFzoEShTN3rxZp/5NOYLATOrVz8Q+u9vduXk+wA1CPAyLEqmdMIAVZSBv/okmBSZirTZRsETkVVZok4AKB3V6tRAgoiOiEy+SRdpq/7a2vWUPeTSL5RTw7mu4UsnopSGvwCOPsTW5+BpJ/2HXPLjbxK5SBJAN1lkM3gkmIpzCfaiXuqm32wX4EV9RLjwBm4K6HhQ0J6AprLwxUcEy3BkATrp6ZyuRZhExJBzpUP3giYF+h8NQC9PRlcjj7luFm31RmrAygStBbD0d7opEGoo3Bpr5ix5+UI6stnT00ADPR8NgGmggZ6DGPPnM6Kuo+6ku8EtZ+YaY20YybEICoPNUXJW0qRD3HyTAEk75HIFJjGb7GyysFfkzcuYvdPObacdd8wVrIu/p2TOYNwmfWJvDRGZG4JnJAz+4ag82Uc5SLme9jktTodDM4mW4yFfRgU42DGnzOlXHlGSnGMTezIANo5zIrBJ6HGOwwXKHl9jxe8+BKKe5imJUtm223ZKODPAbJPmA7n33rs068JhmxyfUYOQjS723nufcGSbJWDiFIPlurrg33X+3O3jWtLYZcBg0eJFOdwHtFqKYOasGbl2lrpJbwhOQfk7zCJHSj+idECL3/QLQNAPPWhjx1AD8FnyiBaJHAHJJBFxw5eepAeeCmxqU2nMAcrh1EijnBp6I4N6ZCQrruOt3BzWi/zmD5FbREe+jD6FjrNtg7foovYqACGd+gIRvT17ZE756lT1sXTE+DjONvIGXgBobbI20iYwD3D20AMP5jBngRd9wINC9UuASSRIfwMu7QEj/YMOlJXDuWPAjswJJnPfh3EBQOBNvdQ9esK6dgHGEoxGPemTfkTJ9BVlAOWiksD/bbfenqu+v+9978tzyq72qv1AAz0fDYBpoIF+yFTO2p7hZswZZEsROLbuC6c9b968cKJel34y03NgnLL1msztGB9P1hye3xyYD8/WStUc0sRJU/Ppus8d6cNAgAlHgFc+aYdT4lA4Erc6h+ZtKc4HOOEMpedcOBERF0/+HCtZOWWye2tJVIXTTocXTphMnvwzqsEZP/l41GtlPMFflc5scQAUvG1kWb3q0dQJx8axVyRAxEc0yYrehuPUjUOUDl9pCiy9VKo2ofezzz47geyv/Mr7MzIhOqIMaYCaPnnY/JwO5kRN6IEMHL7fdEKnhujohQ7oxHmRJucNq6qnTYQRuFQn4CU/uBs6IhX9UGaWF20oTUZWQi6AQzkiRn6LNtJNrnEUwAJwAZqUq82AlFp9XuRSFEvkyIsE8ipQ2Q8+0D9PAyyRw1BYDd86J4qjTZ4xTBht7i+gdEYLt5syKXmsuv/+NmF8gK4A5xkZDKooWfbDkBtIsiaYspwzFw+vkl8fXLZ8eUb0cFB3PJSZfKNeAJQ2MVRcE7u1g4narmk7/Z3+Hn7kgbbDDtPasqVLM1oKYHl7FXBfunRZ+7Vf+/Uc7sX35fapgV57NACmgQb6EVA5aMbclo4gHJ7zXqXnKAwN3HffsrYiNt+w47AABN/02mGHqW2zcMxbhnO8777708ADJ4YRTDIXsZg6fWbOTeGglAHwmGRuQUrDceGXsjygSbTJcEicyLQiCZ7elcmxGbozHCWd35w8pwUwIGUAMhxUHx4JPpHHW2ucl/WlTHxfeOedeSzd5MlTci/6Bohtv90O+dvbava77rprfvwYUFJvpJ54c2b29dv+pZC8qPjYTLY3NHPvvYvbKae+MRfJVIcCt+ZeTQ0gRWbn1BvgkI/jVz+RL6xNiKYPIAZoArg4byAIiABE81oAGe3hmGPHEyDwZpyakSvbJPSQQDHaxl4a5ZgsnbwinwVDtY1yS2bto81Ec/IV/iBpgSHtSRZ1FJEBiA2fOQcc5WrzDwaoCQBrKQV1SNAcMm+5edQ9QBneDwcgVP+nQ6AHA/xk1GzNmgQo8+fPy2+wAYv6lPTkA3DsveG5fYAlefwuAAhM0SWwR99AdEYjow+LUHoLkT4pr6Jx8CT90qNrdInk87aquWQAmPzKdW9dfPEl7T3vfk878sij192HA2Aa6AelATANNNAPmRh1Bt0epQMcc4QMtWP7bvyfbPfdv7zdtfCudIjz5s9PQ+4J2RDJM+EIRQYs8GdYToTIkz9H8WQ4kCOPOjJBjggBp+7pGV+OC0gYnc/CIXO0ntSl8bRvvpXhCrJxUq6ZVMuLc0AODFuV7BaY5Azxu/KKKzO/N9qYER8/JZfX00W9yG8ujmPzj/bcY59cf8pin/iRER9UukIFjgrkvBzHhi8+xRM/8psIfc45ZwWA2DI/kAxcSAMwcLZ0nkNj5nEF0a3rgB5AAMhwvClbWFD1MdQFdBgapfd06CI7kV5dvbovMaACxPoaP0AgQkWmEC300d8wS7njz1Agft5IFG0EeiZPmRLpn0zdT5s2PfWcskf/0cYmWYuaefFg0qTJGS3SjngCR/irh72N7CJL6gpsiYaJXAIiE2IzhyijX4BaCLlZyEuuFQHOp2w/OaNcrueQ4JMB2qJOZKkID4BUbeBhYNKk7bO/mKs1PcBS8g6eQDtZ9T9yZb+M/k/PParWl2l4Yk1f40k5gJa+5bfhty22iP4UTb182fLcmx+3YP6C9v5ffn/bacfZcV8+O29MGQMN9IPQAJgGGugVpD73SeSD0/Wat9fHH2o333RTe2BVf9Punnvujm1RGnhOw3wjjmLtpoZ/tkpAA0RxXKIlXp8XhZImAUk4Ko5S1ED0oD6TwqOIQBRoybkssc+hJdfWPJ5P9TVEY47V3Xffk5NyRZZEXIAqzt/Qi3JFZ3yaAvgy3MVJWzJg8pTJbdbMnbKcIg70laT771/RPv/5z+Uk+93n7N7fpgpzSB8ZIQpQBFiYQE9Uzl99tIEhKefomON2zeRvdXIdiLKIo+iMPBw05y8toJPDTfEHrAAmygMyvJkIHMiPMqo0FpUCvAAGZYkUye+a/ICuKBHwYMjLNYADX3UiU4Kd6AdkdF498dUfRLBEeJyTznVA9+k4P9FCkXFuXPQ75w3N9WjlM/kBXm0N8Gl7b7vpv3g6B+DTnxci8DAvSV9VhxAx+5dIlr6d9VGXAIVZXtRf/dSZzMCn808/1R821AkQLfCnvHGb9BXDActbbr0lAZM5SyKzlhzYZNyzy0+8EI32TzoZaKABMA000I8JMdAcKKqn36fXhDPxplXYbt/14rQ4hsWLFrXtJk9MwOJJndO8+ZZb0sHcfdddCXZMxAWQOEXAynAIJ+o3IGYOiEgKpzVj5ozk45rX2b3OD0BwoGTac4890zmRcb/99mv3Lr23zdl9Tjpnnm9ypvWx2GcjaOVkygH/uNHatVz/M23J4iXtC1/4QtbzkEP7SuOcrqiH6Bz51R0wBFqQ1/gr2uTtOq//Awkm2wMorgGweAI9NQG/HLstwe9mfY6X8tJBx2ZivFXEgTGAA1AwAVukyXUTpMmjra27RD5ABG9DWpZBkJYMhmn1BUCt+oP2QSJHwIqyyUIm/Uib4mk4LQTICddW9taawMtmUS40kxGvAGmiitXm1V+cA2rUwedLatkE9YiceV00S3r1lteePoEmc6/ohez4kVVa/X2rraIuIa/hQcDIvDeyK2/BgjvanQsXBrhf0H7qJ3+q7bHnHgnE+jBcHEW/f7GU7TFG5BtooCEmOdBAAw000EADDfQCNESYBhpoI6Z6Mvb07Xh0G6V6mra3VYSrqM7X8fPR+rxfDSSyYajs1ltvbddff31ORjcZWRQuhzu36N9lo0dU+hH9QFXn0tOGdFVpSv/1WxQGVeSnonGuK2+0DOXiKY19RVbIV7+Rc37XBGfn8anhK/lLBulGt6qb41GStvY2/KQtmewrjWvV51DVqSJRIkQvlfDGo+RTJ1G8q6++OssRvTJXzkrwyqODkqVkHWigl0IDYBpooNcAcRa1PR+VM1nfqWzsTgag4MS9gm719dKTOUEcsMnrhsCAp1GnW2CHEx/V0Q+iL3kRvqP70TYbBR/rk/M1tLU+Fa8CGepZ6V5o/1yEjzR4l2wlnw25XmlqP0p07XyBRMeVv3gU1e8qo0Ch4Ti/gSX1s2QE4GgunaFI85aUC0QBVfIBTwXeBhroB6UBMA000EADBXHa5nFZL2vRokW5/EPNz/HNQHNmRJxGwYk5X6NOfH0adf6Vx95WIAIQQKPXRwmPAiUFGmrP+Y/yKjCwIR6j+WwFZl4KyQtAqneBEfsi1yqNMqqcAm6ApusVGXO8fv0qT8mrjNG9xV2lExlUb3OZtJHvC+Jr3laRdlKm9gSaBhropdAAmAYaaKCBxohjNTxncrHIhbV8/C5wUYDJhPhRh85xozqHytHbkGu2Aly1V1alQcpan9bnVcfF04Yq7/o8Sj774iHPhsp6sSRvyTEqD6p9UQGliqapOwJ+Sg7nCmAhAEx6acgtjWuigK4VWDTR3bHlIOQXFfR7FBjhUzxeTp0Hem3TAJgGGmiggYLK4ds4aU52wYIFOdRj46QLMJkjI105ZXmRc0UFImorhy+PY3u/Lc9Q+dH6Dr14jqYZPUaVpvKuz6OAUuWzL3leKuEhf22j/Kq8igbRXf2WplZ5t5RB5RUVqiFPG6AqKiSvtKW3a6+9Nof0DL0BRtpCm+SaX/Ebn+ciMgw00EulATANNNBAA40RhzoKLjhmwMm6U5w3cMPpV3RDVIMj57Tlk8ZengICrnPojp3DU5oazivgVM58dF/HaPQYrf8bD1sdj9KGeJY8L5dKdlvprvbFX/0d26MCTvQoHX3VRi7n7W3mKtGZIVL6LV4+E+R6gVfRJeRctQE+tiJlDTTQS6UhNjnQQAMNFMTpjjp7JBJiArFhHptrnL1VpW2iIJw5J14gCkmHChQUaCpnjz/nDzSVU6+tgIJ0xQ+NHqPnu/Z8tH6+l7sVle5GwU/psuom+lPDbupYv0svFVGyIXmKr6FLnzqhS3ORrEVlzpK936U76SuP/UAD/bBoiDANNNBAr3ni3Dnr9cFKHbvO+RpCsvd9Mud8JLkiTJw+gAUA1CKfiPMHssqBu865S4M/wIVcR1VW/a79KBXv9em5zheNAoiq30ul0byjfIvq3Pp1US6g47zNb7pTb3oy/GnumH1fqHKr1LHJ3HRWQ2/OIXnxKb3ZUNWv2tBW1wYa6KXQEGEaaKCBXvPEkXLmo87WVsQpc9AAUYEiv4EsgEekSbSI08Zn1En7DQhU5KScuvwVbXku+lE6+Ocr94Vo/bxV1wIoNqCmziF1oR9bpR/Vd+VB9AScegOu5jKJRtE9AFUgqkATKr3+KHU20GubhgjTQAMN9JonoIYj57SBo/Vp1Alz7gCQcyIgHPvFF1+8LmpkeMjwHafu1Xa/Rycib2gOU1GVYz96rMxRqt8FSooqz3PRaNr1ef4gJG9FhYCbAkIFltSXbNJIW0BR3WvvvLq7ZniTLs0Rcx4PC4caDjVPjF6LgCbX6RAVAHMOOR7do4rwkanSDTTQD0pDzxlooIEGGqNRJ7shquscr60iTZxxbQUebH4XiJG3NlRpXa8N1X6UNnTu5dIPg2fJvaGtqOpbe7S+vgCaisKVTui35jjZAJ1RHqNU5ZV+N5RuVKaBBnopNESYBhpooIGCONly3hw5B1uRkiLRJNdEj9DoNVETERJzb6wVJIKUH94dizp5Db6iTkCWvMp0bUNUMthvaCv5AIkCA+vviwpAjO6lWT/di6XKS45R0KdO5FG/Ublq7pc33pRND4bafIoGSHJeJGmXXXZps2bNyk/TrE9V54pWAVFotA1QlWmvrKozqmsDDfRSaIgwDTTQQAMFlTMtJ2tbH6Cs74CBhdpc57yBBSDJZvioQJfr60dSalu/nJKlaLTc9WV4pWhUTvIASBUFqmvqNlrn2sxJcg7oARitvwREVSRplPf69Hz1r3zPl3+ggV4qDRGmgQYa6DVPgArnDtgUuEHm1dSEY44cCLJH0lgbqI45eyuAj5LzPrUineiTSEvN66kVqUWe/K7zAFftkWN8RkEVWZ2ThzzOodq7Nkp4rL8VWHspBOyIoJFxdNisylVPwMj6VbUnm0gSIjdd7rPPPgkqvWVYVABLvWx0RN6iKmP0XJEytFeRcmxF6+tloIF+EBoA00ADDfSaJ44UeCgHXY7VkBqHDwxw0LUv8hZXpeWYDbf5PeqYgQXrBxmqMwxV10RW8Kp9ASW/yQGI+O24CCCQv/YFJvyu62i0fCTN+tvLAUzyASbKJ3fpDdBxDTCiN4DTb8OViHzKllb9DMEBTiZ4o1G5RmUd1cEouTZK+JOhSDm2ovX1MtBAPwgNgGmggQYaKGjU+XKstnLYRQV4yglz+kXlrDl7YIGTLyBhc04aawwBG4CU9HfeeWeer8+CeDMM+BKBAkYACvkLmIzKo6yStX4j/Eap8tkjxyXrS6HSS9UZsKxv7wFJ3npTR9Ejsu+1114pv/2oHKVjaZyr84hsVT8kjbRFdTya54WoeA000EuhATANNNBAAwWNOuMCIc6NngcCnC8nDQQUOc/BF4iQr0CAra6JvrgOVPi9dOnS3BfPAgYFIuxtQFQdOy9NgaiiknuUqg4lT50jDzmKKh9Zqi6o0tTedYQHktY1W62ZVOCwAJNJ3OQ3obtkqbwlV+2LCiyVXJVmfRrN80JUvAYa6KXQAJgGGmiggV5BAi448vpO3eLFi3MIy7ynAiEFJmqukA0A8T01EagCEgUenmtf6ewLwBUoKYAC8DgvYuQ3gGdfb7qVvDYyiLKRwSZKZm9okowFmGrYsUjegQZ6tdEAmAYaaKCBXkGqYT57QMWQFqBUkSjgCZipiE+BDQAEWCkwhOra6L62+l00er4Iz/XT1p5sRUDQ6FBhgTjAqPaulXyAFSpeo+BpoIFeLTQApoEGGmigV5AMzQESgAYgYY8ADSBJxAdoEvER5QGsvKEm0mMiuWsFZpxDNXRY0SB7aSqKZMO/NuUCNY5r0rkokfPmUtmLFjlPPmBp+vTpeb54AEh1vD6VfLWXdqCBXm00AKaBBhpooFeQCtwAEQCIvd8IwBBlqg3wsQd8XKvv11V61xwXcCrAVOdHAROAZFMmKqBT50SH7GuRzhpWI5+trr8YwKS80X2VOdBAryYaANNAAw000CtIGwIPgAVAVPsiYET6yjN6jACj2su7PlAqnjaAR7SofttQ7Qv41MT22isPX2DNcYGk5wNM61OVMdBAryYaANNAAw000CtI6wMV+9rqdwGjAij2da3SOTcKrtbnsf5+lCeqfVH9LgA0CoSUI3pV+Uum2l6ISo6BBno10QCYBhpooIFeQSqQs/6+QMUoEAFMRgFTRZDWBykFbur8+tdRDeu5Zhvl+0KkTPkrb20vlgbANNCrkQbANNBAAw30ClKtgl2AxdDWhsi1Ahr2thcCOc93bUOACVWeKks6JO1ouaNrUD1fOaNUPAca6NVILzzYPNBAAw000I+MgIiKKiFgZENbARtUwKXOPdf2g9BzgZkqC3CyiWqNAq0ftJyBBnq10hBhGmiggQZ6BamAyijwKIBSVKAJSVd51t8XvZjfo2DH7/XTVHm1HyWACXBCxaP42UZlHd0XrV/WQAO9GmiIMA000EADvYJUYKjARlGBmFEwMwpA6nj9dC92K1r/eP2tyio5S1agqbYN5RtooI2NhgjTQAMNNNArSCJJAEYBEXu0IdDh3ChAqTxFdTy63xCfotG8o+lGj0ue9em5+G6I5/ppR9MMNNCrhYYI00ADDTTQK0jPBVSAitqKRgHI+iDkuWiUz/rbKI2eW//ahqjSr78NNNDGSkOEaaCBBhroFaRREIREkND6gAgYqYjSCwGT9XkWjf5Wjq14ejvvxfAu+dZPt35Zo/RCPAca6NVAQ4RpoIEGGujHkAq81PajoA3xfT7g83zXBvrxo6G9frj0YxFh0qgvp2Gfa4z9xVA9Lf2fph+lERzoh0svp4+8nL75WqSXc0+8Fp3Dy7WdL5W00/p9e0OyVHuu366jbwD+oDTcU8/29efaozquCGK1wfPpT54N8XoxeVHZSnnleTltNVr+jwsNPW+ggQYaaKCXRT+Ozm2gl07rt2f9fr52fjFpXu30YxRheqY9teyGdt7c69qC+x4ZuzK+bTdzRpsyZXbb75B926ytN7wC7stBsS8+evB0e2TB5W3ubY+3mYcd2w6avsXY+eeiSL/4hnblDUvao23rNv3AI9qhO27d6jlrFPE/J619sM0/+4z2pbMublddvrhtue/Bbf/DT2hvf9fJbf8p48cSDfSjpiHC9H+OXvCeeB7amA31c1G3nf/n6/1c9mt9WZ6rPYd76uVR6fm59nHUnrx/frvmhtvb4kVL2n2r72uL7n60TX37v2y/c/LsjJSs3zbyrr8VVXuX7jeUF2nXyivNhlatXz/vc9Fo+T8u9GMEmB5u13/sN9q///yisbPfT+N2OKn91p/8XnvnnK3HzjxL/ycA09qHr2x//YH/1L6y7Om21c/+eTvjNw5um41d+98ogM7tX/5w+6O/Ob/dt479pHbAL/239qFfOaxtF/2lOuBz0dpHbm5f/pM/bn9z0ZLo+t9P43Z+T/vQn/3L9voXBG0DvVyqm/+l0gu180DfTy9HVz+OBvZHTS+3f74c2pDdXV+WDbXny5V5uKee1fOG9/GwfvuX23//Dx9r1zwy6t8mtL1+86Ptoz+9x3MCJlQ+sX6jSvtiABPye7Sd1k8/+nv9a0Wj5f+40KsGMKFxO7+v/elf/4t28Nbff6P+aAHTE+3+m85qn/u7v29fuWFVnnl+wLS2PXHzae3Xfuv0tmzszLO0e/uZ//Xn7YMHbft9nel/o7WL21n/7bfb/zP3vqjzW9q//I2faIftOaOtXXhJ+9JH/7Z9954n2tYn/WE77Q9PblOeg8VA308v5+Z7OXmfs403Yno5dX45eV9JA/tK9ZFuO1+Zem9I7vXPPZdsr5S+Xk7el0s/zDoXrw3uV89tf/qrH2pnPbNvO+WnT2wHzJzepu+wbdtsk4ltp313bVPH96jPhnjWVr+LKu0PAphG99JXnufi9Vw8f5xo0z/6oz/60NjxK0xPtGVXndm+e9ODrW3x1vahL/9t+4MP/lp7//tObbssv7xdMD/OP7iqbXf0T7SD2y3te+dc2Rau2a7Nnr5N2zT0/NT9t7QLvn12u3zZhLbrLpPb+NL9Uyva9d/4TDvtk//UvvKNs9qltz3QNpsxu+28/RY5PPb8jfJkW3bW/2wf+C+fbjcsf3zsXGubH/CW9rNHzHiOCWBPt/uvPKOdfvE9AXbe2f7Tn/9Z+y9v2arNPfOa9kD83Tv1uPbuQ6e1TUY60PcTwPXF9qG/vaQ9vMkh7QMf+W/tvYfs3CZts22bvNM+7YiDt263nXN5u/upfdqp7zigTVxxQzvn7HPaeedd1K65Y1Fbes+itvyxLdqUaROf1UHSE23lbZe1iy6/od12xx1tXm6L25NTdmo7TBjXnlp2dfvnj/9d+8Tnv9EuGdFRe2R+u/icW9tTM2e1SeNfDDBdm21x4flXtFvmrWibzqp8cX5ZyHrBVe325Zu0mTtrI2D0vPa1z53eTv/8d9vVi59sk2bPbtO2ckPHU9L8S9s5l97WVo7foc3SXiJ3Z36+nfXQ9LbPrG3aJjlk+aX2xfNXtmkH7NK22+Shdvu3T29/f5q2/m674Oq72xPT9mxzpo5rS847rf3DhU+23fffsW2zSVfM2vsvb5/88Bfa3Tsd1Pae/L8Pca6Nul9yydK21Y5T21aRZ+0jC9ol51zSbl62acg/qY1vD7e7L/9W+/xpp7XPff28du2iR9vmU3Zss7bbvD0dOph75Yq2jbybPtlW3n55u/jWh9qT87/aPjX3BeSIh4e7L/9m+9zHP94+/7Xz2jWLH0m+O243vg/pun7x19qnotx/+tI322Xzn2iT95jdtrnvivb1M77RLrzsynbVlaPbzW315D3a7CdubeeeE33l3Ogr86Kv3L2hvhJtcvN57euf+1T71Be+F23y1EibaMNr2je/u6BtudvObbvNZDJUPbd946LVbXqA+gnj1ranl1/dvvHdO9uE0TTz57YzpdlrRtvy0cXtllvva5tO2b5NGNNB0bj2SFt8y4L20FaT2sQQ6qn79KXL283zIv339aXrx/qSthi530doXfvtVO0XffnsS9vN6/ofPs8t65SpD7RrL7qi3XRb3S+1zW9Lntiu7TRt87ZqrP/+77pCa9ry6y6IfnjL9+efH3UZuZ/GxX2wLNJduH6677t/Nnyv7DBhrKzH72hnfuyc9the+7QZW65tjyy+rl3wrW+17333a+2LZ3y9ffe7343j2s5pl924um27195t5lbB+6n72s3nfqN9/Stfap8789J25+pN2g67zGrbla715Quu6G2wTu7eBueu1wYbtmmo81nXlt/H54Z27oVXtTuST9xXWKx9qC244GvtK1//Wvvn71ze7rjn4TZhx53bDqXbR+e3c75ydXtq113alOQjqnJW+9I1re25++T+MOs+ueaGtmyLqW1K6Cnb/+J729Y77bCB/jCpbfIC/Vbffr7+8kJ9OwpsS265M/v2tvo2fYReb9mQPr7PTm5Ar+HXbj7n2TZbsHrTtsPsaLPNn2mrL/tM+/D3FrRNZu/fDg7b9+DKxW3h4mfajocf2naf6IPJT7Ql53+i/ePcp9bZIX7wmfvCDn3k823e2tXt2ivCpu45q/XYxNr2+IJz2z+ddV+buXedI9OTaSu+9tmwFV+MPrko+uTOO7epEzZJfk8tL1uxU5uYzRa6WnBR++bFD7Rpe0xvEx69M+7Pe7t95cQfXRDtEfZ1rD89+2nn5/MT1a9ejL9JZi+LfjwjTJN/qf355/9F229MyavP+5/tfX/83VDbTu1n/tdH2usu+Xc93WH/sX3mz97aZqy5sX38X/1e+8xCoGaf9isf+/P2S3tPCMbL26X/339u//Vr80J9I7TJQe1X/uZ/RpqtXyDC9MgGo14vNCS39pHF7db5a9r0/XZrk+OmembB59oHf/1v210BsSb94l+2z/7a/m2z5wRMa9qCz/5u+8DHbmzjjvjP7TN/+tY2/fuSRUdYuaSt2GJGm7n14+36v/1g+93P3TN2rWjLttN7/q/25791VNte3qeWtLl//l/bh76+nh7a1u3Q//gP7U+PXtj+17/9/7Uz73kWFLZt39H++FP/sk0649+03/7UynbCh/6h/eGJO4xdfD56tN38j78ZeebH8aZtxi/9ZTvtXxzQxq9d0S76H7/V/vA798Z5bfQn7dgbPtx+96MXhZZHaJtj2gc//AftvXuPDz38XvuNj13f1m6yZ/up//dP22/ufXP7n+/5L+17U3+9/c2n3tPWfuY/td/8eFwf/9b2x2f8x3bM8s+3D/yLv2kLx1glzfr19tenv7s99vcfjHZc2Q78t3/bPvzO2emYb/7477Tf+fSSdsh/+Pv2p2/ZcSxD0WPt9k/9bvvN0+5rp/z3v2v/6bjNoy/8TvBYENeObf/us/+p7T33f7Z/91cXryf/se1f/X//tu1xlj76SDv+D/+2/d4O32y/9TufbHePO7Qdf+zidsGFDz+PHNu3BWf838/B9w/au3d/ut3+hf+n/cePXfL915+Xtgre/6v90t1//L/15ewr7/7j9r9+86i23bhHnqPsY9oH/vT328/svVm75eO/FbLOiPr/cXvLdHfA4vat3/tA+8jVh4yde6LdetpvR/vPaL/3+f/+bJp/9+vtzyLN733+v7Q53/n37V99/PH23j//q/YbB2+bRRQ9c/vp7f0f/Hh79D0fbv/0b/ZrC/7xX7ffPn2sL73/o+0TY31p7v/4zfaH3+596Vf/7i/yfv/+h59ov9N/J8q5r536f/1D+8+v3yzuld+JewWv48Zke2Ksr25I1oPar/3GZu3zH7tww3o+8Nfbfz3hlvb/b+884KI43gb8UEWKoGKhiYoggh0VOxbsvWs0sSbG3lGTqDFqYjcau4kl6j/2FntL1CjYC5YoQmxYsdNE4L7ZvTs4OmqaX+bhtz/udmenvPPOO++U252Vjv5qZZVLGNfrrO3Vl+9vxOku6lHs2CI+Ka3dXmBMGGt6fsqSP1KHcxEyWixkBKEbJqbbVj6e/hntPKyJOz2XtiO2YNtlNovrhvLVgNmcjszMtunyUOoVp+cFMHqToW0wxqpCH6aOa42H1Suhn0qdK3pvQgER/9IeSh1EcHTKAL7cq62DrgtniTqwTGPT9HWiEc5ChvFMFfHo7IISTxf3lxz/djRjfg5NYa+UrQgTZvbBN+9rXdt8INrXYsYodin2KmtHDuP70KbM2PIppU1FJ395OX36/4TJJ/NZ3NGJ67r2nL4+jMZ1+6BM9DYrfclat1//voLuny4jutU0Vg4owR/ZlYdHzpSrKJonnPpuBKM2haSsM59PmTy2AbGr+zFiXTorNVZV6D1zNK3djLiwuI8Ik2wPFefy0tLBDFkdTpFyufjjbDx1xs1neNU84sYoLn7fn4D1MdQdv4iAanlEfmLStxVWlekxJYC27iZcXj6Y4T8VYMDyMTQQsjIyusfeUX2Zfa4Mg1ePEjYygP7LHuM/cQmjqpkSvEikr6+PdRNplF9xAKIy1H1tPyFsUrb6G51P8I4Y1MK/iGdH2Lh6C7t2bWfTytlMmndAOEsKdthaK0pqSAw3965li+osKUQRHasYCg0xFzYzR3WWrPFqE8BXYz+inLUocuJFtv12Q7hiWZEDpwpt6TbkW1bvnE07S93pLDCycqJE6aKqs0R8OEfWbxfOkoIjNcs4i2rNjHginz9XP+Us5pTOkpsRpnmchLNkGIsFbh3HMmv2TMb3b4SzcSx3Nm/n1BOlhEIO5zcyUzhL5POhcYdOtO/YBr9i+r1gCTwPPsgu4XM51erGoIDe1HM2h5fnuHgzhvjXiuTjeBGd2phnhHDo1HsUErh/6RbqQuaTc+zapyivQhQvg7cwY75oBCZlaD92hsj7DD7vWAaTyECWzPuFuxqlTF+zKKCJMO0hbBYN9dDNCCKUqJ9F8vL2AX5YIZwl8uLzSWt8bIxJjHzGQ3HZpNRHjBvRnAJKUs+iiNXkwNHNXcg9muA1+7kSJ8xMwm3OHPhDBChEGTfFKKQmkdjoSPE/mogXMWjuH+F/GxTjpkVz71cWLxTGwroc7UZPZcasrxnQoChGkcdYsf+aqEWFV7yICefExm3cwpt2kwP4uIZ3pvnQ3D+USbwhRAavYbziLFlX4oMx05n+zSDquViI+4XjU/9jho4IYOgnDVDdP2NPGvcNYOSEbxldT+8QWlC0wxhmfDuDL/s21OrKlh2cFLqSeHM3MxeItEWdtPtiuggznc86aOvk+wVKnejr9gmPn7/WRqeJIybFPgl9mMdEPEsOEx2lb22KXBXT94iQ8BfaUwYkxkTxXIR5fuMBL5S44gx16aZWlx4LXVI7aoUootT2nhp9OjG6+vuN1esVo2pIZnk1Jk+dz1n+wzymjv1AN3griF//6SzZtJ99wy1Zb6C/aWUlgsc+5u49Eb91RdoNEvUyoj8tvK2ViFISG5EUrv2QkQwPGEBLg3CJN3dl2Fa+n6+kJdrww3vEChk9uHyd388fFc6SAzW7D9Pqw4gh9GxaWgyPFCwpWr8nAwP64e+Wg5jgDcxUnKV8tek2ZorQp1G0K5+bqFML+WrtFdHyU7bnB5dv8Ux80jw+y679+jqI1NncjFF+1PPaoC718fDkLLuT7IIunoen2KA4S9aV6frNclavnCicQuEQ397Bj7/eFjnSt02lfenifB7KqWDlnJ5Eou7eEO5MHI+eR4lv+nsy0oes9Fbh7XVbnRSI1en2zQe8zECu6cojBUq/tp4ZirOUos7siDq9iInrLun6SoF9LXp8OZUp0yYwsHFxTKICWfzdXm7Fi37NrVgqO3SHswcVO+SEW25F2WN4/MJgAK2SfC61rZg2cyqj25cWaQSxbNGhFLbiSQpbkSyrmChFVsK+Po/OoH1mrvvafiKlHDPqb7LSz+zy73SYEm9wePm3zJw2nQXLtnHusSJk0SE0+wD/IgYbna+EcvvWEb5fksr7VIkmJPCwdh+RRV269GxCtTrdGT9vGqM//5pJrZQONCtMyevTks7NypI/tZ+WHcRI4PTCcUzao3j7YgRQ9QNalcmlvfanksiruHjRlMzIVagwLkpeTS3Jqc5Bimsvn4mmJ3LgWpsOH39K70+706S0rXKjwAQ7v6EsX7CIWYNrYHnrHGfvJjU5HWK0vmM5Cxf+wJqt+zh6NULnEGSD8ycIjnjF0+ATnE7S2ScEbdnJVeW75im3g08SGHiKa08TRC2LUxeCuPBQpGCUC7fG/fmsW2mMXu5h5uR1WsfzVRDLp/zA6YScuH80nnFtPNT7tOSmepsW1KzgJdxTPaIefetTXzhV3D9GUEgUCTfO8us9oVcFK1HONYfWoKU5dLeLrjt46waRnu6rMNS3gn7jTIIYGbbsSbd6lShdpirNA75j+dzvmNxMr1uvuL1jCcsOP8favyPtyhWkQKb5MOHBmaPaeFv0pKt/RUqVrkKzEXNYNncO3zR1Ivz8aeEUmuP6wcd8VMuH0pVaMuL71Syc+wPfBXxAw4aNaFi7DOpcoEUZ6rRoRN2q7uQ20Zcnkbi41+KzKdaFXHHS64rZK/4IPKirkyfcuijq5NhJrj6J19XJcbVOtHHcYP+KBSxaKI7vlrAtRG9YtXLTcoN9K+Zrw8xZzNakMHpiubV/lbj+Ixv3HuVCeJS42wDxJTkuHedOcOFRLE+CjxvokkCESxM2Bc8J3rKeU0n1l5qM8mpOHrdS+NSsQknV7LhRsUZ5iubRcOOYXlY6/U0jKyHjl8JheiVOeNSmRXNRLw2b0ayWuxKRml/9wcsn3FWS9KhLyxZNaNS4BS1qa8MpOpQmrRRtRUkrTnTUMWporm1h0foLULw1Xbs0o1GjxuJoQcd+XfFXB9hladm9E80aVqGo1SvVRj4kJyU79+CD2r6U8W1A909aCvdddOK/XeSOoZwVzp/kgmjPz4R+nDW4lrn8deXVfVbRxyPKcyZ1Gvlr0GfCl0ya+wWdfV3Jk9MOu7xKaYVzH/GCeFVu2qB6PUmOO1muJhZWwj1UT+nOqQEEmelDVnqr8Ha6reRBT8r8CISdVHT7aSp56MuSjLZfU+usS8+kOuv2cSttnR09T5haLgvc231Iu2o+woZUpmGfHjRRFl0unubyE4Q9bEADnR06fj1aOCZnOaTaIR+K22XlFgidDPwlWSeFLhwPOp2sk8LWBz/SC/cmB1cv5ofvlwjnfinbrysNQpCiTC+4kG59ZKX7un7CkHT7mz+Pf6fDlAJz8no3ptu4ecwdXDXljEvMRkZ1+5pjmU49C9yL4ZJTudEEK9eK+Nerikc6e1b+VJT9NuumMUE31W3k0orRQ+qLDirNlFEqjLGwTPtLwGSER/0kjODQJwZOSxx3Nn3N0EEDGBKwgEDF3ylZmmJKg1Acosod6F0hLwmnpotO2I+6tZoSsOmueqeKkRWOJQpjc/MAC9Yc1/2yzwEHe72MxGjt0h7Wr1nBklkTGNv7Yz7bcE2YhWyQ8DtXbj4i7EJw8shHuLfhdyK0HxNvEbh5DevW/MT6PRfTcXytcK9WDVclD3fuCFdLkHCDy1fEOKJwZ4Z+WAorVaQaEuJFJ4U1BXKnnQrUWHlRp1Fh8SmMnQdOcv7oYdGUhWNStyJuZuK6zjClONQ7E3lxdRfrN4dh5OCMo+oJvSD0+h/ieg4cHJS9TDoUOXqVooSjtXavkTBgjy9fITzRUXSWZbEVd2Sej1fcv3VTG29BO8yS8mGJg2dJPB0sdKMyU3Lb5MRIf90kN0U8HUQo3Xdx6NF/Vw/1jNCVzZMZPmQQw0ct4rhSKd4lcbNO4OUz7cwmibc5vmUtG9atZeO+S0l1khxHLOGB29TrG7YcE+VTTyalo0WEObZVrdd1m48mhUlGyObMDnH9e+Z/PZohnbswcs1lIpOyLj6o8em+Kii6dONhKl1KnW5qEtT6W7cpFCNHF139pSarvKYmeRZYr7/pykqfJ91njUa0xfwFtfqSdC69fIv6Leig06u0aaVtK695FvFI+zHyBmHhsVh4FU65lG9imskeDiNMzYx1OmuEmasX5RTn6qEYaKWWRcJVfhftOfTCxRR1oKAvi7Ispz8UkuWg/aeiiycsOG08Sh5MXoeycURr6tepTaO2/VkSqP3BjZ6kqNKRo/Z7IrHPn+lkJK4p59TPWelDdnThzXV7lKLb+nD6POu+qiRcU+1kGrnqwqbFGDNTwzoroauzpzxXHQ9jLC21ex7VujA1w0wNrKsbG2/8G2vt0I6Dpwg+dkRnh3zxLphPhIrmwsrZzF6yhB+WzGXZTl1/odZrgtBJdT5M1cmgdGyFmob66RX3Tuxk88YNbP45SDvzqqDTjRT21bA+1DJnR/dTkW5/8+fx73SYcjRn0vZf2HfwV3HsZc13AXT2c9N1jOlgXQa/ysnzCWl4/DxJWTVRNzmxbzf7zz/I/izJG/OKBwfmMlK/zyRfUz6f+gm+ebMzTWWBi3cp0bmKscTxy9xK3Rhfh7BhdB8G9xzBj5f0amOMlXdzeg0ZQd8P6+KmbOQMOUvwfZ03b+FOiz4d0I9Z08cI89IfMmfmKFqpywH3uHk/WntJNCT7BkOYOmMSwz+sTl4ec3rpAa5lKkAT8jg7CnfnPvt+mMayvffB3hMvZ2VskIx5+U4MDRjF8KRjLF/N6U/NpCm9KEKOHhWNWTjOzopTIDC2I6/i8N6+QLDoHLTEEX7td2JEipYW6am1NSVq1RKjsESebxnPyOVXxLki1PEtnOzwpEssYdu2ERRnR+Vu/Wjjldk6eBxPwi4SHPZYdGGGPOTEhdu6c2+TDyXeS2q86Ys8gahbFzh7y3BJIiOErng1pcegoXzauQ5FFV25fo7gB8nmxbxcBwYNG8GQpONzxs3qQ418emsmytCyn3ptcJ+mFEvXCbHGq/UAtU6H9WuOe5ow5jg16K293r8NJa2fcnrxYnaHpGcKDXRp6XStLuVNq0vpE0vo1q1iEKGtv7bp1l9Wec0YRX+HjBiZjqzeZko6c9JrK+Nn9zNoK8m8uv2AZ+n1s9kh5iVP0/Q2JuTW1cH+ZTNYsU+pAw88nXQz/ul26skkd/oiHieHpHiWq/EY1qUYGJ1ZwaivVnLmkdCRUn40bt+amsUMBkFZpJU5WelDdnThLXRbOB57ruvtqSGKPLRyPZAk1+KUcMqObhuQVGdWOLu66pwVLVrnRe/AKChOjw0l6tTR2qFN4xix7LI4L+xQZQ/cGvSkp08eNBFn2LNhHRs37OeKftldRKKPT0Gv/9ql3wCd/velhrpnSQljhWfzTxk4ZCgDezfBLY2sDOxr1+T6SO0kZt1PZK+/eVf+nQ6ThxvO6oxQdshLreFj+KyTn7YzTcKMvA6O2mq9H8TR35+jiQ/n0JzPGD3pa76ZsotLIbv49vMAxszcTVjs2zRCDbE3D7F60SKW775KlC4KzYNDzJ+zX10GUzDK8YQLW5azbO1hwqLi1XtWLVrIsl3J9yRjRE4vP5oWFhX9xzrmLz/Bg3hdoPhHnBejlv9djQEbT4onNaqceDTpRKcWzWjTcwi9GxaEl7+x+4xuFkfzktBjQWIsYYFz0zEs3bGf/wVU014TDsnlH7pTt05P5p5+hWN5P2qWyi3O32bn3nPadXXFiStTCR+fGjRqWl00suxggWvzFtSyEAbw8lmuCGHY+X/Ih9WVxSJ7KlUtJVRcdPXGTpSp34hGjRvT0K8w0UeXMm3dJZ3sEnh2agVfL7+Acek+TJv8EcWV0xaN+HzpTLq4BbNo5k5uvhajsGen2bJJOB8OvvgUsSAx8rl2LTsxmhhljV7I1cy9Js1LGWhJwSpUMjTEmWHnT8vqLpipw7TclCrjJfIfTfAvZwhX60dDfPgepvTuz9CJO7mujvIsKftpP5rbxnNr/ToOhCsObGb5sKBQ8eLaeH81jHcv0/oIA/31IWKcFGMYy/XgMF2HKJzzo/MZ2Gswo2YeTB7BZYgF7o060qFZU1p1H8TH9RVdOcreM5G6fQ26OqnXkIaNGtGwZmFiApczY70YIWsjELhStXFT9Xqj1q3xd0vPKBWmWpPmar02btuGesVShzEjf5la2uttOtGqotC5xKscDdTvE9OPwpUC5aBQ0+b45TDUpS50qWavhksKm1lHalePVjUKYW6WnsnLKq+p0e+J08qqrNDf9GSliY1ONRJOJObF8zQj3/TCRSeFS5lWmrayXmkrpljb2okQFnj0m8nkVs5ozqxinmgPae2LIYqNdBL69Iq7ofd0s3uvCD+8l6NCf00qeVIoyRfLgatBHfwuMmxbS9icKkodZA9tVkRdNm6SQV0qxBB6KhDFclm0Gs+i2eMZ0rsjNV3Sc3Q1vI5PtY6T8ILIGOVcIrEx6TkoOjLUh+zowtvp9rGg5D2QyShybUpNRR5Xzqlytavbmc5J8kiNvl+LJTxFne3T1lnF0vh6ewsbLRzDC3+o9tvISOhTyHnOKWNLW0cK2irOjDHmHn600v3wQKVgNap4WGNk7U37KT+ybOo4ho35hmkzxtCplHZPneoqGVngVMxA/xuIcoo6beRXRKv/G4TeqSEVClNVyEq53riNYiu0DrbWmTLAVrGvzpiq9lWvtFnoflI/oZBZf/Pn8e90mMzMyHLlSodRqc58VD0vkU8jhNoYYo6jX3PqKctSiRdZ1a8Z/v6dmLBH+UWZCfaVC/HywCp2BJ4gaPsq9l/LpHFlSDTXdi9h+dqfWD11BYfV9dQYQvZuSrFMqLlzjG0izP8Wfcmotae4rNyz5idWTVmuuycVOb3pMLoXPmJkcvbH4XxQvw2fDO5Je/F/6A9BRBkXo8nIzvjaKaqkEMXZqZ2oW6tm8nKbsTsViiubmYUCXVjD18vOkGBTj0961cE16TlWMdy89xILW1uMEkPYHNCL3kOGM31buLjmQK0aXupMV4r4O0zmrDhjVCgftllpj7UXvn76hl+IWhWLCLVWyEnhZh/QUTiFyjJht469GDZ0IL27DmT+0bskmpmKLkDI7dkxFo1fxx2jSvQe2hhX7ZyyipF1Kbp89glel2bTo54f/i1HsUNZN7+3ggH1/ain/7Vc7AF+2qZbPjRypGrTSmoDVHSgQN1KFMvWb02FQ9q+PqWSnHhT8lVpSmtXJf+z6NujPyOG96dX71mcSRBOT/XSuOqrxqo8bXpVxzzqMEtWn9Q6ORnmwwQ7n8a0UuI9/S39ew5g5IgBfNznW2281cpSvnpzmjubE7n3S7p368/IgR/z6bjN3Em0plTdMhTMsjjRnJvRhQb+dcTRgtFbtLriU9yevFVb0V5NeyY9O/cmYMQQ+vQYwsJj99CYa+tEiy25rHUFNDInZ6rnommxxdYgjGWap/Qb6FTttkz45THka0j7JqpLLAYZZjr56LApQSUDXfKrUFiY0+wi6q9DA0pnOAjLKq+pMcW+emsD/f04layMeHl8Lr16zSNEd0f6xPNYhOvWfQ7XdGfSkjqtlG1Fo7YVM/K5uAiLpyzD5MfLryb5E+8SuGAR28N0e5v0mFhimUMvB2Ejawq7aKPh4aYAOosR/vBPOtP922OigypBhzY+KG5YEinqwIUaPq4GdRBL2JqB+Ndqrz4/LjUpnFnrzOpS78SJGPfMImB4P7o168hERT/SEMOl74bRZ/hwAsYs47xy6tUuvurVR9THSL5Zq8yapEdm+pAdXXgb3W6QrNsWqXRb2MlKNZPlWrNCkUx0W9uvaetsRFKd9Zit1Jkn7duUJ4+LL80q2BG5bywd69UV7bwerQcu53qiPVX7taK8pe7dcsbOVGvum2SHCtbzVe2Q6swo2wvE4Lm+ny+llcFyCZ0mKPcZCX2r0YZOOp3sLnRy+LBBfNptkFb/dfZb6zEJWdloZ5uMjHPoZKWVe7L0c+LeoZ6BfdXrS+a6r+8nksiwv1EQDuRP/VX9nJyOfmaXf5HDZIqtfX4hRGOs7HNlojAmWNsrSzPCOBRrzMB+/mIUZEKuIiUoJkpj5FKNCsLoKxjZVaX/9GHUL2bw807jfJRsPZKve1bBxV5ZqxVYF8Ulb/JTH9LF2Ab7Qsoox4L8tpa6ytbnWaTl6o6r+rAJZT+A7nk5qTF2oEyRAuTR31PYnULaB1SkwgSr4m0YN2MAVfKZC58ngtBzITwWPpiRcz36zprCwOqOInXRiVaohnOqWjTKV5nOX4+mrZuS31huihHbHQtvWiU5WSbkditNcWvhtRd1oEjLAMa38cZSSefsJcKjzXFu1pdulR2wL+qJfYr4rXGu1oVRI+pTKF3t0eXJpjw1vYvhXc9fzZ+Rp+joyxWggJsHNvlK4lG0Eh9NGUMrDxs0ESGcO3OO0Ih4rCr0ZdpwP/KKUVHU1ZMERjlSa+RAWhQWZcmVH9fczlTp7Y+H8KjNCjdlxLA6ZLbjCzEGubhsC6dfJIhGaEIez7J4queLULuSa/I+oTSHMEweXiJuc+yrfsqwlu7ClNtRvEpZrF2K4OjgQ4/Jn9HExZzoO5dE/nVya/oZX3/kg0uholgZF6G0myhzrS709XMh6tQ17iYocWeSD6sydJs0ikbOZkSHX+bc2cvcjTbDqckoJnTxxiKXDx9PHkNHn/zEKNcv3yHasgg1un3BiIYu2n1NeYvjW9wSK28XIUddvBoxsvepilNqXbH3peNXAbQqYoFG6EjnSZ/Rwl3UyePrnD97nrDHok58evPN4BrkUdpmrtzCltpiI9RSG68lDsWcDc6JMLYijLUduZI6ZmF8PUQY9VzOdHRW2afYjN5fdKayl+g8XDyoVduT3EKXXPW65FWMksL4a3WpGc1UXSqOdb5SeBRIbzEzB06e3tr6q9aH4a209edRtSw2Sv0pv5ZV2lmmedWdMylIcV9hK5LuE+Qslay/j0NSyaoqOZ8+4qnSXp3q0b9XVfKpsjLGOr+D6ELEgFA0Q40mgdgnunDODRjUuzr51ciFPSvgKMKZY6aMHA3TStVWpg5T2oqIt1gFqhYoSRWvfCJ4WwI+LI9V4n1u3NfNXRlZYlsgp8hfeYoZ2Bwjuyr0mzYIP+GEK3p8/noEGktvWo4fy4feit3MoA6KN6Vx6fzkL+Iu7LEX7vlN1V+haXhJxIuUQ1ctFriUryLkV4aqnkUyqUtrHOt2pVeFvMK3v8NlpV0Ze+HfrhFl81nrbK+wMXpdFjYr7NwZzoeKfGsTMtBdZY6uAFW8HTA2bM/p6oNZNnQhK33JRLc/F7bXswQVnT2o6VccO317tClHda+ieIkBjFIeRa5Ny+Qjf1FFrt5CrmZqOzNE268NTlVnXrT8cixdvESdmRWm0ZBBwoYY9KLGjlTpP4GR/s4GzwA0Ja9XOUqoAYriX6UoOXTXlEN5lIH2yIG9a1FRP1Wo451He6+ik1PH0tojl6gCQ53so+pkPhMzctmJsEIuthYmuniscdLJytbCEmd9+6zam2Et3DHV2OKht6/ptbN0+4ls9jcFTXkVrWy+z0g/s8e/6DlMb5+NFM+oeEOyftK3AZoYXrwUxixXxrtNsoteKbNG2eT9B5dvvxS+igtebrqHsv3pJBAVHiKUMQ5TezdKGLz37q8ljieh17gTmfh26cbfYNuofsw+FY19g6F81buB7iGUcWL0voShI9dyJ2dbvln/KeVyxHF/92Q+mXGYhArDWfp1o1TPuEqf9N6HlIT6MLpQRBvGTOTf0zFl/tN/K/urbORDiTeMx6+FWbMvSgkRb0oUvbjB789s8dQ/qO9PQ9kzFUK4WifppZ05ZmZZDD4y4Y3aYyqy36b+TISehV7l5rPXbyUrhezLK21bEYbznWxnMto6f2BROI0Op4dST3Fxcaq89R2r5tIS2gzeQ8XxPzBO98w2JZySv/h45ReWGrU9KPfkyJHxkFiLsEd3hT16ZoNbCacU+1fTb1PZQ2nL79JfvC16GbwtqXVEW+eK7l1T66y4g3YQb6gL+s9KeQ3bRnL5hR3aOZFuU34lodIoVk5tItzLZH0yjCvtvXq0Onk7MkG1f+nlIysyCpvS7r5jPyGIP7+AVoN2UzHbzxRMy7/CYZJI3h4NMafn0nnYUapPWcBQX2X/lY7EMDb27cfKYmNY0vIBs0fPI/CRMurUvqKmdzYf8aA3Fm9DSgdAQ2zoNr7+LGU+lFflpMe7pPtP8r7m+114kw4iNe9yb0bo6yD1f0PeNc+Guq3En3hzI4MmvGbIoo4UTWeMYZhepoOQLHiXfP+Tuvl351ufXtp7FTu0lYmj5urskBvtZ2ffHr6vJN7cwICvXjN0cad0Np9nD+kwSd5/Mpn500S/4KW5NWZXl9NvwHJu4kiVvmMZ3cYr419d/omkdphiLi3XPvVbyUefMYxsXSLDfCiG7p808JK/h5Q68ueg15vU/w15lw5cufdd7v8nZnkkehQ7tOwfsYfvO9Jhkkj+Qt6lM5QO03+Dd9GRjGYRUjtK6emRdJgkkjdDaq1EIpFIJBJJFsgZJonkL+R9nWF6l9mDfyrP7yt/xgyTntQzSqnrwvD7u84SyRkmyX8N6TBJJNlC+VVaKGcuXOP2rTtEPIvg9o0o7Jv3YWAt5wynav/9DlMG5Wr2KQMyKVdm/PV5/rcjZPogmF9P39E93d0Is1z5yJ8rD85eRbQv5Tbgb3OYNC+5dWIvW7fu5kjQVR5buOBVthTlajShub83ebN8+F0CUWEnOBJmRflapUh68PtbIB0myfuIdJgkkiwRHcXVjYwfNp/TBg8kVR64Vrz/Aua2LfqeOkyZlKvfPOa0ybhcmSE7wyguLPyEIWuUh+SmxcilDV9O/5TqBbQ/rc9cR+J5eHQBw36Mo/vEQdRJ9coV/SyRXk/0sk+tNxpNNDe3TWLgrCNEGdtTtIwLFo9CuHxHeVay8mLzsUxP/a7ONIhyLerNsLXxNP5mIUN8UzzW8o2QOiJ5H5EOk0SSBZpnR5j64Rj2aryo374OpRwKUiC/DWZGNunOGBjyb3aYMiqXKdY4lSicabkyQ3aGeofpEW4dA+hfRXnmy2tePggjeO9GNpy6By4dmfJdb3zsTLLQkXvsmTiKOddy0WrUFHp5pXyVj/7eLB2myJN81z2ArU98GbBsLE0dzUWYRCJPzKP76M08x5OuC2fRxSO9V5DoyfjZSG+K1BHJ+4jJuHHjvtR9lkjeSzRR4Vy58gf3HjzggXo8I8EmNzbmeqP8igfnD3PkzBWuh4QkH9cfYeJoT8yxFSw5EkdRbyesjbW9gObxCZZPX8ttZ28KXlvL1L2hGBcqSdl8Rrx8Es6NO4k4VfDBLZduxB//iMsHd7Bt03rWbA8k7KkJ+V0dyaV7N1L84yv8duoR1k72WBq/5sm1Exz7/TX58zzldNA9LNXzRqIsYQQeDOTyAxMcXHJj/OQKRw6d5IqaV0dyq2XSLvkcPHyaaw+NRbg86b+JPoM82apxJPA8aGUG5SpPEesE7h5azg9CLkW8HNG//UTz+CQrZqzjlpM3Tk9+Y8P+R+Tz0F/XEBt2gNX7InD01MsyjseXfmXbmh/5ce1ezoS/JnehQuS3VNZzlHKcYcfeP8hZxAVb1UETnXLob2w/+owCHgWxiA4lMPA+ls56+YRy7EAQl9OUO4t0hPzfVo5KmtnLg57XPDj1M3suvqJw4558WMOdAgUdKeTmTYU6VXC8fZQj5y/xtFAt/N1ziQTEmFUTya1j21i5fAXrf97LkbN30TgUIf/To6zeeY778TE8jM6Fp0dh8uUUZTIIv2G7Ev6eCO9G0bwW6gP9UjtMiQ9P8NOqYzzK7Uenj3zIK8quvE8sR8EieLo4UbSiP7UrCidIEUt8BJeFY7d61QJmT5rJygNXeZxoi6t7QcwizrL70GMcvAtjp+h2/D2OL5/EiBETWbR8OSvXB3HfphhlPeyFXJS6/JX163/hyt0bnNuxmpUbD3Lpqa1wuBy1+iF09NKejaxaNZ9ZE2bw434lrdwU9nBIaotKGkHLJjBs+AQWLlvGj+sCuZ/LnXJqGtogEsnfgXSYJO85CTw5NIOeny1g9+5d7FGPHRwy8aVN+fzaJaXEG2z/bCRzdxzi2NHfDI6r5PStTd5zC/lu5W6u5a1BA0870eFEceWniUzZep44z+oUDt3Irosv0ChPXL94kUuXLvP7xSD27Q7D2rcKXrkjOT1/JMMW7Sb4mnDcbl/n0omD7L9mTfmqxclrHsPFlSP5fN5uHhapTaWoTQwZMIMdh+7y8ukeFn+/m2ce9aheKJ7gZZ8xevF2jv3yCKdGlUj4eSyj5v8s8voLJ00q0kyUyUQTQeB3o5nw426OHbxKjqr+lLFP9bRozZOM81TNE3vzWK7tXpZhuawqlcHixGLmrd5NiJBL/eK2WrmsmcS0bUIuxavhcnY2U1cc5qWHP9XU1wZFc3ndRKavOMQLj/qiPImEbviKPl+uJEhxaO/dIvT8EXbtDMHCxxdv+0Surv2ScUvu4t6sFu7q6xDucWBiALM3ReDa2BeNKP+wWduFfJT4XhO89DNGLRLyOBiBU2P9PVFZp/PT528nR+XdkGu+yEYeDNE7TDE4VGtOfcUp0mNsRR6usfHXK9w3K03zWkXIkfiA498OZ8jCPfx+I5z79+5yJ/Qcv/1yGyOza/wS9lLcqCHmXjAXzMvTrEQCJ3Thr94M58H9u4SL8EcPhpPfrzruuUxSOEzqPiezBB6J+j8f/ge3X5pjbZsXR3srTExsKFDUkxLCObVSHBTNI44LmYxadpCQWxHEiHtfv7jN1ZNHCLb0xuXyIuasPcqzYnXxc37Mri8HM2nHNaL16xSvIwgLOsU958pULWrGtfUTmLr2CGeCjnP+2i1RtluEnN7P3juu+New4sLsUQQs3c+1m8lp/X7iMME5fWlQKi8m8TfZNW4gE7enTCM08KRIowrV3HK91bKxRPI2SF2TvOeIUezz56I7McaqfGdGTZnNrNlzmdJK+5ZrldgI7t6LA+uKtB8ykuEBA2jprX37dvIbsaMIXrOfK3HCKifc5vQB5c3iLpRxy6sNppCvDh9PnCnin8zQZiUwiTzKgm93ceX0OmZsDEEjrncfN5UZU0bTvnxuok4t4Ku1V1CepavlFS9iwjmxcRu38Kbd5L7UzKVcjSbiRQya+0f43wbDN5priH+tvzuB+5du8VT5+OQcu/bdU88qzkJ0bOolHdG5XlifcZ7WGOZJkE65Fs35hVcubkIu0Vxcu5/LrxLRxN/mzME/xA0ulC6aW6SiIPL+XORddHbqoZ6LUcuTeHMXM+YfJcqkDO3HzhDxz+DzjmVE/IEsmfcLd0V4bfkeE/FMuz0aTRzRUfpXXyQSG628C00bn+b+b6xeH6q9ZED201F4EzkqZC8P2ccE69z2QutETkR8ylutNPcCWfOziNOlOSOXbWfvz/PoprwdPvIkgWbVqK6+lDQnxesNYHxjN4wMwo/4YSs7N8+ha0kRPiqIDUduiRynXc7V5ChB5+mzGd62GA+2fcfEAZ1o2qIbAVOWcyBUOM1q/SXw8sQqpoi4NVa+fDR+BtNmzmBsN1+sFMfx5FUeqrEJPY6O4dnxdSw+FgE2dRmk5PvgHlZ9Vh9r7nNo/hYuxOg9HHOcmn7BDz/vY8vSwVQ2T+Rl0GWuHFvF5G3X0VhXptvEb0W9fcv4HpXVtK6dvM4TUVfPgtax6Kg2jcHLd7D/132s/rwBNiKNX+dt5nxSGhLJX490mCTvOa95FqG8fTonHv5NqedbjtJlSlJUfZ+cjpdPuBsr/nvUpWWLJjRq3IIWtd211zDFvkpDGtqIpnDvGEEh0STeOMuvd0Wn7eCLTxH9ng4LPDp0pUP1CiL+qjTp/wnNxCVN8G5++N9eHoj0S3bpQefalSnr25AevVvhKgz+g98uciepH37F7R3fs+zwc6zrdRIOTH6S5zNeELx1A6cze03W+RMER7ziafAJTqfXtycRTUjg4QzzdP+3YIM8ZVCuixeIcK9LfUUu9wM5cV3I5eZZDt0TGSxYiXLKy5AzJY4bxw5yVUlH85TbwaLzDzzFtacJIkVx6kIQFx7q3611g30r5rNo4QLhqC1ma4hSWal5TvCW9ZxKI59Xb5COjmzLMTUZ5eHdMMpfjY+/nMS3M7rhFXWJw4eDeSgcVEWGj+LyUsZFca9s8PIpi4vypnmD8CUiL3PkiEH4Z1Gqw5QeGks3aveaxIpt/2PmmMF0q+dMxG8rmfJJCxp2W8iZ55Hqi2wjhYNTqF1X2lcTbal0Oap1+YZN+w+yZ1ozHHVxKS/1vnXxnAgreHmA2d2bUr9OA7p8vVd77lkQp0Rb0mJKvhIlKGRlhpVzEVzUVewXXD5zmpciLdf23elYvbzQv/JU/2gq2349zIGZjSmgS0OZX1PS+LZbE/xr1aPzpD3ac0oa1/RpSCR/PdJhkvwHMSV3QQdhqnVYe+HfpIj4EMr2Ayc5f/SQ6MJNKOjvS7GkQCZYWZonv/DRxDTV/gljzMxMdNeNMCvsTTnFp3j4jOQfoCXw+PJlwhMdadSoHHZJ9yfy4uou1m8Ow8jBGceMfq6d8DtXbj4i7EJwyhmiDMkgTw8M85S2XOq2K4Vc3tRpVFh8CGPnwVNcOHaEmyJ8gbqVhFxMsbPPJ+6L5vyKmcxatIgli+awdMdd7b3EE/n8ufZj4i0CN69h3ZqfWL/nIrr35xsQS/ixrer1dZuPCvnoTieRoMpn3aZQjBxdUsnnTdLR8cZyVMgsD2+HkYWZ9qXJJuaYPtrLhI6t6dp/JBOnLWRnZo6AQfgeg0bzzcwl7EpyTtJDQ8zNo6xbtY2zD16hMcmDm2992vUZz6LFw6ksdFxz5xinb+odVVPy5M1l4My/DeaYpfejgciniCwYYEYe+7dNK4M0JJK/COkwSSRi9F6idm1chePyfNNYhi+9LM4VpW7lIsIk56BAIddkhyK7xLzgaYa98UOOn7+NbhFKEEvYtm0ExdlRuVs/2nilnr0xIY+zI1bcZ98P01i29z7Ye+LlrMyhvAEp8pRVuZQlGmtK+NWikCKXLeMZufyKOF+E2pVcMdOY41K/Jz188qCJOMPu9WvZsH4fV6LSzm+Yl+/E0IBRDE86xvLVnP7UzK//ibw1Xq0HqNeG9WuOexpnJJbQrVsJ1MmnbRr5aMk6nXeRY/bykDUJwmeI4JXIS0FPF+zE92fHFjNy3iEiyIdXvbZ07deXFklLxqlJGb6Efxu6fNqb5l7J4VNv+FZmHK/tXsjSFYtZfeJB8vKpOEwKlKKyt/LLuxievozDIqeV+BzPk4jnvE4KF8v94xtZvvkk4a90S2DivBZzCnUXDt7BX9mX4lhK91S/6FMxz4m11kvE0kpJ67VI64VBW3jFg+MbWLbpNA+SJgbNce2xiN3KzFOKYxk91LxLJH8P0mGS/L9HExudarYhkegXzw1mF4ww8/CjZWnFgOtwqEpld8UYm5KveCnhTMVw/XwYz9R+Qnl+0VnOKgNyOw8qly8iYojlbuhdItXrr7hzaC+/JYhuoZInhfT9NZaU7dOfFnbx3BIOxv7wFENtEZc/Lau7YJY0xaPHAtfmLahlkUjU5bNciVSCfsiH1ZWfq6eHGXkdHLPIU8blOqeUy9aRAjYmmLrXoHkpg06pYBV8i+m+W5Wg3eTlLJ06jqFffMPUGWPoqOylUdHvDROxGjtRpn4jGjVuTEO/wkQfXcq0dZe0SzcqhanWpLl6vXHbNtQrloEDY1ePVjUKYW5maLbeJJ03lWM6pJuH7KL8Wu8cmzcGkmDiQ6uariLf+qWtnJQcOJNvR/enS4tKuKr7ltIjZfiZAX34oFlFCunDp3GWFHLgVNxbuKUxXPv1GCGGTm3MI27fVfQwjsgYEwqXr0QB8fnWpp2ceKasPYo8hx9kwdcL+GnhNk4/1rs25kLHnISOxXF7/15OqNNGcTw+/z9GNq9D/cFbCdf7VIaYW2ClOsQ2eFbwpaC45+b67QZpHeC7CXNZNW+nqB8TnR6L/Ozby/GkNFYT0LQW/gMzSEMi+YuQDpPkPccIUzOD/UopiOdx0By6dZ/DNfV7IokJCSSIQ/v4MY34r/2ekFgQ3yYV1Y5XGf0WqFORIiaJ6jWNUwWaVbDj5Z7PaVO7JnVr1aZ5v6WEJNpTpU8nWjRqTl0bDQ82jqDTh58ytGcnus06KjpwTzq0rUBuZQOu+FPyamTtQ7uPa2AeeYjFq47zRKPv4HLi0aEBpZU9Kvqwhp2ftRe+fva6L4WoVbGIukcnfcxx9GtOvaQ89WFYL32eStCxXQWURw4aF/KlRcXc6Zarar/W+FibYmLqQrVmvsly8ffFI6c4b2KiO3LhUqE2jepUoVy5ylT01j/M0AT76q3pWNiChFPT6daxF8OGDqR314HMP3qXRDNT7XKUii221toUMDLHUtujpkInnzSOhOkbpCN4IzmmJqM8ZEQU55ZNZ8aCBSxaOJvJoz7hg3ZDWHWpIE3GD6WFug/MFBs7RWYxXFr5FQHDhzKoR3/mnFJ36QjMsLRWFqwesXvlMnaGxaYIP2rUCIZ9Mpi5p3XhdbNCyvOZlEM7QyTqonJzWrvnJOHSUoZ1/IihY8bwxeh+dG45lI0PcuHdaiDdqxYgh3cz+jdzw+jlDr5qV5+G9fxp2m06QVE5KPZRJ+o76tqasXDC6naknasFmtub+LJTG7qK652GLOaMcEStChXEzliv97lwzGut6nOyThuRw6sZA5oXE2n9zNiWtYX++dGg82QCI3Pg3rUNle0scKzbiXaibjW3NzKuQys+7NKBDoMWcVqkYV2oALbZrQqJ5E9AOkyS9xwLCpUsJcarNtjn0j45OZlEYp884qkYUBs51aN/zyrYqx2JEVb5HEQ3bYapsb5zMSaPZ1k81fuUZadCmOo6nUQTVxoMHkgjZ4P4jR2o3OdLhtcpKPoDX/pMHkhNJzOi71zmfGgEGksvWoz7go+8bUQnYY69a1GsjAtTppgDDnW7MqB2IaJO3sLIwxsr4eDYV+vD8FYemBvlpnjVsti4FMHR2pJCFarhbFOemt7F8Badl7NosUaezWlergAF3DywyVcSj4JpHUYju6r0nz6EWs7mIk+XOHddyZM3rb4ap+ZJxawIjYcPpomLgctg7EiV/hMZVc8FE2NjjI3NyeddnhLqxaL4V3HDQj2f3pGDfK5uIk+VqeOdR/gXpfhoyhhaedigiQjh3JlzhEbEY1WhL9OG+5HXyAQr29zCibQjVw59z2eFo4ez7lxOnDwN5eMuaswOjyT56MxXlukIHXlLOaqzM9nJQwp05RKfNI9Os3PtT6xbs5F9QSHECD3st+BbhlR31DlyOSjavD99qznCYyXvF3mYvz69+vegSfkSuAs9LVu3Bo5GGmLCg9h+8SWFDcKfP3OJRwXq0bNfdxqL8MXsLZOcJv2hYJTTmy4zv2f2N2Po07YYLy6c4dy5MGK9WzNw1kKmD6iHm3CQjYzz4/vJCKGfhdX8qxjno2SHz4VTVIb8dnlE3VSgbpn8GAt59pz6Je1L5RaBIrl75zEa0S58unzJnD6VsDESzqBjSXwafEjLsnZah8msMFU71sHHrxh5TURavQMYmDqtjmMY/0EJ1ZE1si5HzynppzG7T0UyWriUSP4K5JO+Jf8PiOPF8wRsbHMmG14DlE5DmSnKnFfc3/UNH884TEKFESz7phEFdJGl3ROSEXE8CQvhgUVhPB2t1LwojkT27/8rEHkKDeG+yFMJJ22e3gwhl52T6D71VxIqjuLHqY0p+MaRKHm4xp3IREzt3d4yH9nh70rn34OhU/QmKA97/f1BTtyL5kk5A5dNUs4WJRAVHkLo83d/AnjG/B1pSCSZIx0myf97MneYlKdT/8w3n80nKELZ1VSUtjNn8XFp3SyM4F0cHmXZ6v1EyCV0KxNHzSXwkSIXN9rPnk3vMgYPYZT847ytw/SupHSYJJL/BnJJTvKfRxP7hLtPhFNg7EjlvsP4oFSys6SQvF/nzY/3GVUuj7VyqdJ/BF1KS2fp34jeefk7D4nkv4icYZL8vyfzGaasMTV9m0ULieSv55+YXdIjHSfJfw3pMEn+36N0Ksrm7bflXRymf7JDk0gkEsmfh1ySk0gkEolEIskCOcMk+X+PMsvzLjM977IXSc4wSf5K/sllManbkv8acoZJIpFIJBKJJAvkDJPkP8G7jIaVZym9LXIULvkrkTNMEsnfh5xhkkgkEolEIskCOcMkkWTBu4zi5Shc8lciZ5gkkr8POcMkkUgkEolEkgVyhkkikUjeU+QMk0Ty9yFnmCQSieQ95Z9yWqSzJPkvImeYJBKJRCKRSLJAzjBJJBKJRCKRZIF0mCQSiUQikUiyQDpMEolEIpFIJFkgHSaJRCKRSCSSLJAOk0QikUgkEkkWSIdJIpFIJBKJJAukwySRSCQSiUSSBdJhkkgkEolEIskC6TBJJBKJRCKRZIF0mCQSiUQikUiyQDpMEolEIpFIJFkgHSaJRCKRSCSSTIH/A4EGKsVidmTBAAAAAElFTkSuQmCC" + } + }, + "cell_type": "markdown", + "id": "99d7b9b2", + "metadata": {}, + "source": [ + "## Настоящее и будущее Data Science\n", + "\n", + "Data Science идет по нескольким направлениям:\n", + "\n", + "- Искусственный интеллект (ИИ) - это сфера, в которой основное внимание уделяется созданию интеллектуальных машин, способных работать и принимать\n", + "решения как человек.\n", + "\n", + "![image.png](attachment:image.png)\n", + "\n", + "- Машинное обучение - это инструмент для извлечения знаний из данных. В машинном обучении модели могут обучаться на данных самостоятельно или\n", + "поэтапно: обучение с учителем, т. е. на данных, подготовленных человеком, или обучение без учителя, в котором работа ведется над хаотичными и неорганизованными данными.\n", + "- Глубокое обучение - это создание многослойных нейронных сетей в областях, где требуется более продвинутый или быстрый анализ, а традиционное машинное обучение не справляется. Под глубиной понимается наличие более одного скрытого слоя нейронов в сети, которые проводят математические вычисления.\n", + "- Большие данные - это работа с огромными объемами часто неструктурированных данных. Специфика этой сферы - инструменты и системы, способные\n", + "выдерживать высокие нагрузки.\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "id": "72bb5bfa", + "metadata": {}, + "source": [ + "## Чем занимается специалист по Data Science?\n", + "\n", + "«Специалист по Data Science - это человек, который разбирается в статистике лучше любого программиста и программирует лучше любого статистика» (Джош Уиллс).\n", + "\n", + "Специалист по Data Science анализирует бизнес-данные, извлекая из них важную информацию.Cпециалист по анализу данных решает бизнесзадачи\n", + "с помощью следующих шагов:\n", + "\n", + "- задает правильные вопросы, чтобы понять проблему;\n", + "- собирает данные из нескольких источников - корпоративные данные, общедоступные данные и т. д.;\n", + "- обрабатывает сырые данные и преобразует их в формат, подходящий для анализа;\n", + "- загружает данные в аналитическую систему - алгоритм машинного обучения или статистическая модель;\n", + "- подготавливает результаты и идеи, которые можно изложить заинтересованным сторонам.\n", + "\n", + "Всё это позволяет решить немало проблем, некоторые из них приведены далее:\n", + "\n", + "- обнаружение мошенничества и выявление аномалий, например изменений схемы снятия или расходования средств с кредитной карты клиента;\n", + "- целевой и персонализированный маркетинг - персональные рассылки по электронной почте, системы рекомендаций на сайтах магазинов;\n", + "- метрические прогнозы - показатели эффективности, качества рекламных кампаний и других мероприятий;\n", + "- оценка принятия решений - обработка больших объемов данных и помощь в принятии решения, например о выдаче кредита на основе кредитных оценок;\n", + "- прогнозирующее моделирование - прогнозирование столкновения метеорита с землей на основе астрономических данных.\n", + "Это лишь малая часть тем, которыми занимается специалист по данным." + ] + }, + { + "attachments": { + "image.png": { + "image/png": "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" + } + }, + "cell_type": "markdown", + "id": "c7db9972", + "metadata": {}, + "source": [ + "## Предпосылки для Data Science\n", + "\n", + "### Программирование\n", + "- Для успешного выполнения проекта по Data Science требуются определенные навыки программирования. Наиболее распространенными языками программирования являются Python и R.\n", + "\n", + "![image.png](attachment:image.png)\n", + "\n", + "### Статистика\n", + "- Статистика лежит в основе Data Science. Правильная обработка статистикиможет помочь вам извлечь больше информации и получить более значимые\n", + "результаты.\n", + "\n", + "### Базы данных\n", + "- Будучи специалистом по данным, вам необходимо понимать, как работают базы данных, как ими управлять и как извлекать из них данные.\n", + "\n", + "### Моделирование\n", + "- Математические модели позволяют выполнять вычисления и прогнозы на основе того, что вы уже знаете о данных. Моделирование также относится к машинному обучению и включает определение того, какой алгоритм больше подходит для решения данной проблемы и как обучать эти модели.\n", + "\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "id": "b6992419", + "metadata": {}, + "source": [ + "## Профессии в области Data Science\n", + "- специалист по данным;\n", + "- дата-инженер;\n", + "- аналитик данных;\n", + "- статистик;\n", + "- архитектор данных;\n", + "- администратор данных;\n", + "- бизнес-аналитик;\n", + "- менеджер данных/аналитики.\n", + "### Специалист по данным\n", + "- Роль: специалист по данным - это профессионал, который манипулируетогромными объемами данных для создания серьезных бизнес-концепций, используя\n", + "различные инструменты, методы, методологии, алгоритмы и т. д.\n", + "- Языки: R, SAS, Python, SQL, Hive, МА ТLАВ, Pig, Spark.\n", + "### Дата-инженер\n", + "- Роль: его роль заключается в работе с большими объемами данных. Он разрабатывает,конструирует, тестирует и поддерживает крупномасштабные системы\n", + "обработки и базы данных.\n", + "- Языки: SQL, Hive, R, SAS, МА TLAB, Python, Java, Ruby, С++ и Perl.\n", + "### Аналитик данных\n", + "- Роль: аналитик данных отвечает за сбор огромных объемов данных. Этот специалист будет искать в данных отношения, закономерности и тенденции. Позжеон составляет убедительную отчетность и визуализацию для анализа данных,чтобы принять наиболее жизнеспособные бизнес-решения.\n", + "- Языки: R, Python, НТМL, JS, С, С++, SQL.\n", + "### Статистик\n", + "- Роль: статистик собирает, анализирует и обрабатывает качественные и количественные данные, используя статистические теории и методы.\n", + "- Языки: SQL, R, МАТLАВ, ТаЫеаu, Python, Perl, Spark и Hive\n", + "### Администратор данных\n", + "- Роль: администратор данных должен обеспечить доступ к базе данных для всех пользователей. Он также следит за тем, чтобы программа работала правильно и была защищена от взлома.\n", + "- Языки : Ruby on Rails, SQL, Java, С # и Python.\n", + "### Бизнес-аналитик\n", + "- Роль: этот специалист занимается улучшением бизнес-процессов. Он является связующим звеном между руководством и IТ-отделом.\n", + "- Языки: SQL, ТаЫеаu, Power 81 и Python." + ] + }, + { + "cell_type": "markdown", + "id": "c690562a", + "metadata": {}, + "source": [ + "## От Data Science к программированию\n", + "\n", + "- Существуют новейшие и очень интересные технологии, основанные на Data Science, - это автомобили с автоматическим управлением, персональные цифровые помощники (Alexa, Google Assistant, Siri и т. д.), динамичные сервисы пробок и навигации на цифровых картах и, конечно же, персонализация опыта покупок." + ] + }, + { + "attachments": { + "image.png": { + "image/png": "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" + } + }, + "cell_type": "markdown", + "id": "beaf149c", + "metadata": {}, + "source": [ + "### Компьютерный алгоритм\n", + "- Чтобы заставить компьютер сделать что-либо нужно написать инструкции, затем компьютер запускает программу и выполняет её шаг за шагом чтобы сделать задачу. Данные инструкции называются алгоритмом.\n", + "#### Примеры алгоритмов\n", + "- Напишем алгоритм приготовления чая. Ингредиенты: вода, сахар, молоко и чайные листья на две чашки чая.\n", + "- Шаг 1 . Начало.\n", + "- Шаг 2: Возьмите ковшик и налейте в него один стакан воды.\n", + "- Шаг 3: Зажгите конфорку и поставьте на нее ковшик.\n", + "- Шаг 4: Доведите воду до кипения.\n", + "- Шаг 5: Добавьте в кипящую воду две столовые ложки сахара и две столовые ложки чайных листьев.\n", + "- Шаг 6: Добавьте в кипящую смесь одну чашку молока.\n", + "- Шаг 7: Варите содержимое в течение одной минуты.\n", + "- Шаг 8: Выключите конфорку.\n", + "- Шаг 9: Процедите чай через сито.\n", + "- Шаг 1О: Разлейте чай по чашкам и подавайте.\n", + "- Шаг 11 : Конец.\n", + "\n", + "#### Пример вычислител ьного алгоритма\n", + "- Напишите алгоритм того, как сложить 2 + 2 и получить 4 в качестве результата.\n", + "- Шаг 1 : Начало.\n", + "- Шаг 2: Введите 2 + 2.\n", + "- Шаг 3: Нажмите клавишу .\n", + "- Шаг 4: Конец.\n", + "- В целом алгоритмы состоят из 3 видов операторов, которые могут присутствовать вразличных комбинациях:\n", + "1. Последовательные операторы.\n", + "2. Условные операторы.\n", + "3. Циклы или итерации.\n", + "\n", + "#### Последовательные операторы\n", + "- Эти операторы выполняются один за другим, последовательно.\n", + "- Приведенные ранее примеры, как заваривание чая, так и вычисление 2 + 2, являются примерами последовательных операторов. Рассмотрим еще пару примеров.\n", + "- Пример. Как рассчитать возраст человека по году его рождения.\n", + "- Шаг 1 : Начало.\n", + "- Шаг 2: Возьмите год рождения человека и сохраните это число как УОВ.\n", + "- Шаг 3: Возьмите текущий год и сохраните его как СУ.\n", + "- Шаг 4: Вычтите УОВ из СУ и сохраните как Age.\n", + "- Шаг 5: Выведите значение Age.\n", + "- Шаг 6: Конец.\n", + "\n", + "#### Условные операторы\n", + "- В таких программах некоторая часть программы выполняется в зависимости от определенного условия. Если условие верное, компьютер выполняет одну часть программы, а если условие неверное, то выполняется другая часть программы.\n", + "- Пример. Напишите алгоритм, который проверяет, заболел ли человек. Считаем, что человек заболел, если температура его тела выше 37 °С.\n", + "- Шаг 1 : Начало.\n", + "- Шаг 2: Измерьте температуру и сохраните ее в ТЕМР.\n", + "- Шаг 3: Проверьте значение ТЕМР. Если оно превышает 37 градусов, переходите к шагу 4, в противном случае переходите к шагу 5.\n", + "- Шаг 4: Выведите «Пациент болеет» и переходите к шагу 6.\n", + "- Шаг 5: Выведите «Пациент здоров».\n", + "- Шаг 6: Конец.\n", + "\n", + "#### Цикл или итерации\n", + "- В некоторых программах определенный набор действий нужно выполнять снова и снова в зависимости от некоторого условия. Эти повторяющиеся действия называются итерациями. Итерация выполняется с использованием одного или нескольких операторов цикла, поэтому программы такого типа называются циклическими или повторяющимися.\n", + "- Пример. Вывести на экран все числа от 1 до 1О.\n", + "- Шаг 1 : Начало.\n", + "- Шаг 2: Сохраните значение 1 в i.\n", + "- Шаг 3: Проверьте, выполняется ли условие i <= 1О. Если да, то переходите к шагу 4. Если нет,переходите к шагу 7.\n", + "- Шаг 4: Выведите значение i на экран.\n", + "- Шаг 5: Увеличьте значение i на 1 .\n", + "- Шаг 6: Переходите к шагу 3.\n", + "- Шаг 7: Конец.\n", + "- В этом примере шаги с 3-ro по 5-й повторяются до тех пор, пока условие шага 3 выполняется. Как только условие станет неверным, цикл завершится.\n", + "\n", + "#### Блок-схемы\n", + "- Алгоритмы можно изображать в графической форме с использованием определенных обозначений. Полученное изображение называется блок-схемой.\n", + "\n", + "![image.png](attachment:image.png)" + ] + }, + { + "cell_type": "markdown", + "id": "4618b4d3", + "metadata": {}, + "source": [ + "### Что такое язык программирования?\n", + "- Если мы хотим дать компьютеру какие-то указания, нужен язык программирования.Разных языков программирования существует очень много. Как и у разговорных языков, у всех языков программирования есть свои правила (синтаксис) и значения (семантика).\n", + "- У всех языков программирования есть свои сильные и слабые стороны. Некоторые из них идеально подходят для создания веб-сайтов, другие - для мобильных приложений, а третьи предназначены для выполнения сложных математических расчетов.\n", + "- Независимо от того, какой язык программирования вы выбрали, компьютер все равно его не понимает. Компьютер понимает совершенно другой язык, который называется машинным языком. Но нам бьmо бы сложно писать программ ы напрямую на машинном языке, потому что он очень сложен и состоит в основном из последовательностей чисел. Именно поэтому приведенные выше языки программирования называются языками высокого уровня, т. к. они более похожи на естественные человеческие языки." + ] + }, + { + "cell_type": "markdown", + "id": "23210686", + "metadata": {}, + "source": [ + "### Что такое исходный код?\n", + "- Исходный код - это то, что пишуг программисты на всех языках программирования.Это те самые указания, которые мы даем компьютеру, написанные неформатированным текстом." + ] + }, + { + "cell_type": "markdown", + "id": "44f998a4", + "metadata": {}, + "source": [ + "### Как запустить исходны й код?\n", + "Существуют три основных способа перевода исходного кода в машинный код:\n", + "- компиляция;\n", + "- интерпретация;\n", + "- сочетание этих двух способов.\n", + "\n", + "#### Компилятор\n", + "- Компилятор - это программа, преобразующая исходный код в машинный.\n", + "\n", + "#### Интерпретатор\n", + "- интерпретатор - это компьютерная программа, которая непосредственно выполняет инструкции, написанные на языке программирования, без предварительной компиляции в программу на машинном языке." + ] + }, + { + "cell_type": "markdown", + "id": "bbed9afd", + "metadata": {}, + "source": [ + "### Сравнение компилятора и интерпретатора\n", + "Основные различия между компиляторами и интерпретаторами:\n", + "- И компиляторы, и интерпретаторы преобразуют исходный код (текстовые файлы) в машинный язык. Основное их отличие состоит в том, что компилятор генерирует автономную программу, написанную на машинном коде, а система интерпретатора выполняет действия, описанные программой высокого уровня.\n", + "- После компиляции программы ее исходный код для запуска больше не требуется. У интерпретируемых программ исходный код требуется для запуска программы каждый раз.\n", + "- Обычно интерпретируемые программы работают медленнее, чем компилируемые.\n" + ] + }, + { + "cell_type": "markdown", + "id": "4e5c4a72", + "metadata": {}, + "source": [ + "### Что такое интегрированная среда разработки (IDE)?\n", + "\n", + "- Для решения специфичных задач всегда существует специальное программное обеспечение. Например, когда нужно работать с данными, таблицами и расчетами, мы используем программы для работы с электронными таблицами (например, Microsoft Ехсе), а если нужна презентация, используем PowerPoint. Для создания или открытия текстовых документов используются текстовые редакторы. Нетрудно предположить, что для написания компьютерных программ существуют интегрированные среды разработки или IDE (lntegrated Development Environrnent). В этих программах есть специальные инструменты, необходимые для написания, отладки и ком.пиляции кода.\n", + "- Поскольку мы изучаем Python, мы будем использовать IDE, поддерживающие язык Python. Дефицита IDE для Python не наблюдается - можно использовать любую. Но я рекомендую начать со стандартного программного обеспечения, т. к. оно проще в установке и использовании. Скорее всего, вы так и будете использовать эти программы дальше, поскольку они весьма эффективны." + ] + }, + { + "cell_type": "markdown", + "id": "a6a879fb", + "metadata": {}, + "source": [ + "### Spyder IDE\n", + "- Spyder IDE (Scientific Python Development Environment) - это бесплатная научная среда разработки на Python, которая входит в состав дистрибутива Anaconda (пакетное программное обеспечение для Python). В этой IDE есть функции редактирования, проверки, отладки и интерактивного тестирования." + ] + }, + { + "attachments": { + "image-2.png": { + "image/png": "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W2yxhf1br149+1fEk5Jly5YFjoFMsGUS8TvD5vfffzerr7566EGio5R54cKFNpg6coeJ6jmbqGRevny5TVF0UkFl/u6778yll17qvsrPypUrbajHsOsCCKjOpC8hEMPkq6++MtOmTTP77ruvmxMe/H7UM3KHSUXquVOnTua0005zX5VNXNtgyY8//hhYGfCwUEFhB3IGVhtQOWH/qFHK7ChSOyEW9o+qes4mKpmjVGBBZf7888/NQQcdZG677TY3p/pBx0qK4tmICyNHjjR169Y1119/vZtTNnFtgyUrVqwIrAz4EjSeNdZYw80Jj99++802yrA71ihlXrBggR1VouXDRPWcTVQyo8wZpa211lpuTngElZl1+Eyszpo1y80RSaR37962M7755pvdnLKJaxsscTRJYGXwv//9z37gmmuu6eaExy+//GK/RNijhyhlnjNnju1I+GHDRPWcTVQys/6dhrnOOuu4OeERVOaJEyfaidXFixe7OSKJnHfeefZvEAsvrm0wXDtFCCFEIpEyEEIIIWUghBBCykAIIYSDlIEQQggpAyGEEFIGQgghHKQMhBBCSBkIIYSQMhBCCOEgZSCEEELKQAghhJSBECLBPPXUU/bUV9L+++9vpk6d6l4RhSJlIIRIJCiCO++805x88snmoosuMuutt5654IILzKJFi9w7RCFIGQghEgcdPopg6623NgceeKDZa6+9zLnnnmt++OEHM2LECPcuUQhSBkKsouBSOeCAA0yXLl1sOu6440pH1fzl9QcffGBfA4GALrzwQtO/f3/7mpE5r4cMGVJaBuVRLte8PO7hvWEyd+5cM3PmTPt5RBsEAu/vuuuu5qWXXgr981YFpAyEWAWhwz7llFNM+/btrWuF9PPPP5urr77adqQrVqwwb7/9tvnxxx/dd/wdVnHChAk2VCfMmDHDDB482IwbN86+v1u3bvb68ccfb8aOHVua9/LLL5s77rjDvieXXIWUm1AqfqAMiNWMAvAgcljDhg2tfASQEYUhZSDEKsj06dPNRx99ZKOseROwN9xwg7UGCgnjSuhQOm3eTyzndu3a2eD3RxxxRGle8+bNrXLwG60TZa5nz57m/PPP903bb7+9e2c2KCvwrIJM+BwUlygMKQMhVkGaNWtm6tSpY104Tz/9tM3baqutzHbbbVdQbN769eubbbbZxv5Px4wP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77//3v0vGFGuF54/f75d4/zvf//bzQmHKGVmbT3yxmWNcxAfctBno1BY7019rLPOOm5OeBQicyHPdBKfjcsuu8w8/vjjdjI5bOLUBtdbbz27mSwfUT3PyFxM/5w4ZTBx4kRz3XXXua/yw9djm3bY29Uhqp2EUcrMZB7ysq44TCoic8eOHU3Pnj3dV2VTnZUBnVm3bt0CdzpJfDamTJlipk2bZrp27ermhEec2uAxxxxjDj74YPdV2UgZ5KEQZbD77rubBx54wM0RSYSzajbaaCNz2223uTllU52VwR133GGeffZZc+6557o5Iol8/PHH5u233zZjxozJax1IGeShUGWwePFiN0ckkfPOO8/+XZWVAVZBhw4dzLXXXmuOOuooN1ckkTlz5pj99tvP9O7dO691EFdloAlkIaqIp556yqy77rqRuE9E5bL++utbhX7rrbfaDjmJSBkIUQVgFdx9992mR48edgJUJJ+jjz7aWprDhw93c5KFlIEQVQBWAe4pWQXVhw022CDR1oGUgRCVjGcVnHHGGbIKqhlYB8xFJdE6kDIQopLBKmBX7t577+3miOqCZx2wMCJp1oGUgRCVSFznCj755BNzzjnnmJ9//tnNiR5Gz8cee2xpuvfee90rVQOf78niVxe8Jt+75/rrrzfLly93r6ZhvwErhpJmHUgZCFGJPP3009YqiNtcATLttttuoe/kLYuXX37Z9OnTxx5VQV3ssMMOZvDgwea+++5z76hc+Fw+HzmQp27duuaSSy4pVQh0+jfffLP55ptv7HWWt48ePdr069fvHwohsdYB+wyCsmLFitSvv/7qvgqXpUuXppyKc1+VzaeffpqqV6+e+0oklXPPPdemIAR9NgrFGb2lnJG6+ypc/GSeN29eqnnz5qmhQ4e6Oasmv//+e8rpLFPOCDr1008/2bxly5alevfunXKUQ2ratGk2r7Lg8/hcPh85YNasWakuXbqknA7dvh4/fnyqSZMmqccee8y+5rd1FEhq8803T02ZMsXmZcL727Rpk3r++efdnDRRPc/F9s8lCOXqhbxwVgcp7HijQCxaRiX5tn9PmjTJdOrUSZvOEg6bztjuf8stt7g5ZRP02SgUp1Oyo7oo3DV+MuMeeuaZZ8ywYcNMgwYN3NxsGKG+++677qu/YfR8wQUX2HbHSPXqq682TifqXk2zyy67mNNO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UeYkKQM6/C+++MK888479jx8lAB/S0pKbBLFgXUB/G48yyhElMHaa69tdtppJ9OkSRN7PQzi2galDIpAyiBNEmVOijJ4//33zSuvvGItgvnz55u2bduali1bmg033NDKHoX8qyrffvuttbimTp1qA3TNnTvXNGzY0Oy///5mxx13DCUQkpRBHqQM0kgZZLOqKgNG/6+99poZPny4jZu7zz77mB122MFsscUW7h0iSn744Qfz4YcfWmuM8L1YCrvssou1FIohrm1Qq4mEiCEognvvvdc899xzZptttjF9+vQxJ598shRBJcIgAYvgpptuMl27drVuurvvvttaatURKQMhYgZuiv79+5vx48ebo48+2px33nlms802c6+KquDQQw81559/vmnWrJm54447zLhx49wr1YeSFStWBHYTFRJwGX8bZhUBx4PAZBirDcJeyaBg3NkksZ6jkjnqgPgVkRkXAooA98TVV19tdt11V/eKiAMLFiywvw+ruc4991yz/fbbu1eCE9c2WLJs2bLAymDlypX2w4J0fjNnzrSjGXydQcDXxfrmsCuoEJkLBX8z8wVhr8uOUuYk1nNUMlMuDQj/bdhUVOYHHnjAzhH07t3bdOjQwc0VcQKFcMUVV5iFCxeafv36mQ022MC9Eoy4tsES582BlQFfghRk8wgTyJtssokVLgh0rGi0sCdVCpG5UJhgqlevXuij4ShlTmI9RyUz5f7+++92tUjYVERmXA+XXXaZufDCC62vWsSX7777zlxwwQV2wHvDDTe4ucGIaxvUaqIi0GqiNFpNlE1FZGaSkmWjN954o5sj4syYMWPM2WefbZ5++mnTqlUrNzc/cW2D4dopQogKMWrUKDvPdsopp7g5Iu7svvvuZo899jADBgxwc5KNlIEQMYA5ghNPPNFsvPHGbo5IAqeeeqp56623zJdffunmJBcpAyGqGDqSadOmmcMOO8zNEUlhyy23NG3atDFDhgxxc5KLlIEQVczzzz9vd7XGxSrA7/zss8+aCRMm2NfMqwwePNjmcQ24dvvtt5cm717w7kfBeXhl4g7z8O7zysgsHygzN48y2fjFip640K1bN/PGG2+4r5KLlIEQVczYsWNNp06d3FdVD3sv7rrrrtIOjs1vL7zwgj0XieWLdOisoGEvBPMc/OW1pxDYPX3NNdfYHbseXplDhw61r1EE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" + }, + "image-3.png": { + "image/png": "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" + }, + "image-4.png": { + "image/png": "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" + }, + "image-5.png": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAANkAAAFYCAYAAADeJVm/AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAADsgSURBVHhe7Z0JvBTF0cD7YRITQ0QT7wtvDgUPEA9UjEbwQBFRUSIonvEOincEryjBM4IYvEFBEfBAvIMgKHKoeACKghFFBVFUoqhJ/PbbfzH9mDfO7tuj5+3MbP1/v+bt9uwOvT1dXdXV3dU1mSzGx7///W/zq1/9yvzsZz/zctzwzTffmG+//dasv/76Xo47oirzf/7zH/Pf//7X/PrXv/Zy3JHEMn/88cfmd7/7nfnlL3/p5bgh7fXcyPurKEpEqJApSsSokClKxKiQKUrEqJApSsSokClKxKiQKUrEqJApSsSokClKxKiQKUrE6LKqPORbOrNkyRLvVWlQHyxPStKyqk8//dSsvfbaZS2rCnv+aV9WpUKWBypy0aJF5sUXXzRvvvmmCJYVru+++07+lsqPP/5oGjVqZGpqarwcN/A4/+///s+sttpqXo47qA/qmHKXCs/JtgH+brDBBqZFixZmn332USErlyQJGYL07LPPmuHDh8t9N910U7Phhhua9dZbz6y77rrep5RSsZpw3rx55qOPPjIffPCBWX311c3GG29sjj32WLPDDjvIdReokDnCZZnvu+8+c8cdd5hNNtnENGvWTHrYddZZx6y11lpSoY0bN/Y+qZTLF198YZYvX26WLVtm5s+fb1544QXz1ltvmW7dupmePXs6aSsqZI5wUWa01/XXXy8Pee+99zYHHnigCJpqroaBtsFWmg8//NCMGjXKfPXVV+bQQw8VYSsHFTJHlFtmBOyss84ya665pjnxxBPNNttsI9pLqQxz5841jzzyiJk4caI57rjjyhK0OAhZ1bvwcWgcddRRorX69u1rdt99dxWwCtOyZUvp7E4++WQx3THhk0zNihUr6mgyJBSpL8eDFAZS/7///U96FdeUWubPPvvMnHHGGWazzTYzF154oWnatKl3RYkDWD7jxo0zf//7382pp55qjj76aO9K4UTVnvEO48X9+c9/7uXkpub777+vI2Q//PCDfNF1obgvP/g3v/mNl+OOUsvcp08fMWOvuuoqFbCYgqDdfffd5oEHHjC33HKLadWqlXelMKJqzwgZ6Re/+IWX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RIwKmaJEjAqZokSMCpmiRIwKmaJEjAqZokSMCpmiRIwKmaJEjAqZokSMCpmiREyDbdpks2bYKnziA/7jH/8IPTCcDYJnnnmmHAbe0LDl55577jF77723adGihZe7ioceesist956P9m3xe8hLNsJJ5xQkXKHwW958MEHzX777VfvVqO3337bTJ482fTu3VsONLfY+mCvGmyxxRY/+QxtZ/DgwXKcLuy8887mqKOOktf56pPv3X333eaII46oU76wfNrQyy+/XLF24YdV+Gx3Oeyww7yccCquyRYvXmxuvPFG+bv22mvXSc8++6z529/+JpXdUNAYhg4dam6//Xbz9NNPm4kTJ5rLLrtMhMdCQ7z//vtlhbUfyknswyFDhshB9HGBsj/88MOygTEffO7KK680DzzwgNSDhde2PngunEvNZ+hoLPx2ntUbb7whn6GT5pw0/w7t5cuXS93Y58lf9hjed999cu8nnnhC3n/yySeh+XyekHd0ynGq3/qIjbnYrVs3c+GFF9ZJp556qlT0O++8432qYVhzzTVl2zq7jOfOnSuNasWKFXKNB33DDTeIRt5tt90kDxC8iy++WHprwizEiQ8++ED2CLJxNhcIw6WXXmrGjh3r5ayC33bzzTebAw88sPbZHHzwwdLYbeeD9uNZnXjiiXL9oosukp6e71FnaLyePXua+fPny2eBbSJYOEQ9JtoxwVjXWGMNqeuw/CQJlp9Yj8k6dOggf99880356wrbMyMUNtlemcaAwCNkmCMcqte9e/faKFAI/HPPPWe6du1aayrRCNF2CxYsMHvssYfkFQoNcMCAAXKPQqGs/rLX913Mq7Zt29Yx7fy88MIL5oorrpDXYfEqXnnlFdnEe8ABB8h77kOd0OhffPFFyXv++eclvMTuu+8u7xs3bizm5KxZs2o7SYQck/XOO++U381njj32WDFBOYaX4Ky853Nh+X7zEAvD/n7qj/u5wHaWNrEp02/FlEKshQzzgp3aQbMMwgTFn7jmN3ks9ntPPvmkjPlINBYeFI0NqFRMlHPOOUeEa/z48dIgAAGjMW2zzTbyHoh7QSPGPi82tgb/92233SY9fH3Yso8YMULGzbbsV111VU5Bo/FhYtG4c0GgmU6dOpm//OUvZvvtt/dyV4E2Zxzl14TsdEfbzJgxQ8pF+akDW09gP+/vJCnHa6+9Vit4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ewbzuCcTwuUuhnbJoYceal5//fVEmYxVJ2SsrGdNXFwg9sm1115bawK9+uqrMu7gLw0eQeE6W1eYmOUv762gffXVV+LiZt2lxd7z9ttvl/cIGKEJ/va3v8k9SLfccovci2vA/893+K6Fe5588smyiDcusI6U1Rs8x6RQdULGhOZuu+3mvYsXNPgRI0bIej3m8FiGdumll4omYdXDsGHD5C+Ts0yiWwGpD9YDXnHFFaZHjx5yD9L+++8vK1y4ljTYmJqkielGNiCITcByxmB+uQnYhxR2rdwEhZSZdWxff/21fD6OEDYADbb77rvLe+Imzpw5U5YXbb755pLH39NOO808+eST8vn6QBuOGjVK1oz6J915TV7SnAjA/Oa//vWv0GccTBBFe7ZLfsOuBVMjFjr6E1/mwQTzy03cl13AYdfKTYWW+ZNPPpHFonEE04wGzwqUTTfdVPIwBQlawz42P9ttt510GDQ0y8SJE819990n6cEHH5SgN4D59+abb8p9Hn/88drP8Jo84nYkDVbl8/vCnnEwRdWef/zxRxGgsGvB1MjudA3ueA3ml5ssYdfKTZawa8FE5cSRd999V8Y+bMUn9JqFrf5hm0QREH+HgZASdoDEnrgvv/zSu7ISOhh73Sa0IjsPkgaNG0ELe77BZAm7Vk6ymizsWjDx4TosX74889///td7545sz5tZvHix984thZb5s88+y2S1qfcuHlAvHTp0yAwYMCAzffr0TFaLZe6//3659txzz2XWWGONzJQpU+S9Zfz48fK5OXPmZLLCk9lss80y48aN866uumevXr0y2XFb5qCDDsp069atTh3xOitomdmzZ8t7/n++w3ct3JP//5VXXvFy4sExxxyTueeee7x3+YmqPf/www+Z7LjQe5efqnJ8rLvuuqIViN8RRwjhxhYPVpzjPifkQVaAxLRjuz7wF09hs2bNfmJGhsHvxcmBlmTnsYWQcTg+khgvn99SyD6uuFB13kVMJObK4ggCceaZZ8ocEO533NUsYH7hhRckzj2eR/4Se+Tss8+WwD6FgJNj5513loCn3MPehzwE0MKucNz69jP8v4xnEM5CPZkNAaZ1kkLerXZ5Fu+1wECNaEyuIylx36zaLjtmQxjFlJn5FVzgnTt39nIqC+MLhKpVq1ainQjUwzwQmoz4Invuuad4AWnwLAkjsA+HSbAyHRhj8n0+y0oWsPfkfm3bthXh5TrxM3CCcB8E9JprrqkVVMZwaEmcKVwn4Sbn7AK2mTCtQBz8SoOAseLjqquu8nLyE1V7to6PgsLjeWZjLWkek8GMGTMyW2+9dSbboLwcJR+MyxjzMfaLA3379s1ccMEF3rv60TFZBcBcpAdi1YOSLNDiHKLBNEeSqDohw/lxxhlnmH/84x8ibEp+mPglclcc5heJJsbUxd577+3lJIOqEzIgIhVjDyZwlfzgHGGdY6FOlqhgHM0+wP79+3s5yaEqhQxtdvrpp8t6vrffftvLVeIKzosbbrhBAs5269bNy00OVSlk0KtXLwm/jZeK+PZKPEHAxo8fb6ZPn24GDRrk5SaLqhUytNmAAQNkDRwr2lXQ4gcC9tRTT8kWHeKx2GOhkkbVChkgaPSOduuImo7xgQl3QsAReJY5zSOOOMK7kjw0THcWHigxP1hhgVOEADtRHGukFAYbUtnFzQ5ownT/6U9/8q4UT1TtGS3L4gqNhV8ECBomCTP5BGxp3ry5rB1kBYYSPSzfwqKwKzow3/v16ycn65SDCpkjXJUZQWP5EjEwEDA0W5s2beQvpmUUZa9m7FIuloCxAXXatGkiXBwKiPZyMQZTIXOE6zIjbCwivvfee2XtHmHI0GhbbrmlmJFsPpV9QkpJsAgAzcWCZISL54cDCuFi7FWu9vKjQuaIqMrMrmEW1TJxzZYQhI/V6GGbKIsFsxSBdS2sPE4aseuzqIFd1iyILXe8yqoNGinWAbBxlJALNsSCS1TIHNGQFYmguYD6QFgr+fCLhX14Lo7ztcJlibLMKmSOiENFFksSy4xmZ9WFC03uJ+31rH5qRYmYmhUrVtTRZIw5sLtd2/Tc94cffohkoWlUZWZwTnLdc0MSy0z8RzZuFrRRsQjSXs81BJfxXgt8kQK5HpBzXwb7DHpdE1WZcSCQXJsakMQy02B5fq4n6tNezzVZ27KOkDFuoiJd/2DCnPGQsOldE1WZsbl5SNj0rklimXGzY4m47ijTXs/q+MiDOj7qoo6PVajjQ1FihAqZokSMCpmiRIwKmaJEjAqZokSMCpmiRIwKmaJEijH/D3mtNs1A7jtuAAAAAElFTkSuQmCC" + }, + "image.png": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAANMAAALACAYAAAAJ2kfFAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAHp0SURBVHhe7Z0H2BRFtrAL996993pV1DWAJEGCIIooChiAK7oGRBRQRCSJqBhZMKGgiIAY14SCWRYTqAQRxQQqoALKKsEAiIHFgCCY3bv/nX/eQ9fYjD3f9MxU0zPznfd56puvU3V1d50Kp86pqrJL9doJoyhKwWzj/SqKUiAqTIriCBUmRXGECpOiOEKFSVEcocKkKI6osnHjxkSVKlUMwSWJRELCNtu4l9d//etf5g9/+ENJpfn//u//JL2a5s3xkma+oWvifM9Vvvvuu8Qf//hH5w9Ghif853/+p7fHHd98843ZYYcdDOl2SZRp/vnnnyW9pfSeo0oz8f7yyy9mp5128va4I873LML0X//1X+bf/u3fvF1u+Oc//2n+93//1/z3f/+3t8cd//jHP8yf/vQn5xkoyjR///33ptTec1Rp/uGHH8yPP/5odt99d2+PO+J8z9pnUhRHqDApiiNUmBTFESpMiuIIFSZFcYQKk6I4QoVJURyhwqQojlBhUhRHqDApiiNUmBTFESpMiuIIFSZFcYRajfuwacbF45NPPjGffvqpBPjss8/kN1+Il3cchW8QwfX3A1dprl27tqlTp44EOPDAA8vSalyFyQOhefDBB81rr71m5s6dKxmgUaNGZo899pBncC0ElYlff/3VrF+/3qxatcq8++67Zs899zQHH3ywOeuss0zbtm29s9ygwpQjroXp2muvldCqVSvTtWtXc84554jwWAFSQSoMPFTtL2HGjBlm2rRp5tFHHzV9+vQxQ4cOTdVahRKr3xjClDwp+YxuSZZGiR9++MHbcsuaNWsSP//8s7eVP3PmzMHLOHHssccmXn311UTyhSX+9a9/eUeVqPh//+//SZ7jO15yySWJ+vXrJ0aMGOEdLYw483OlFSY+XtWqVRPjx48XIeIDK1uXZF9P8t7bb7+dOOqooxINGzZMJPuq3tH8iDM/V0ptXv/+/aWZ8dFHH5l+/fqZf//3f49kQhKlYmg+0xxr3ry5efbZZ83RRx9tkkKVUvqUGlU2bdokE6q4zkzJkl4moPiP//gPb487vv32W7PddtuJEOTKgAEDzIcffmimTJlidt11V2+vUgyQX4YPH26eeOIJ89xzz4kSKFeYqCWu/CxTfTGTi+tOdpTTOaEdyqc2mTdvnrnoootMsn8kgqSKheKDDPuXv/zFzJo1yyxevNjbGx6ujys/VxptHipvmhDPP/+8adeunQpSEUO+oclXv359c88993h7w6GzE20FUH1fdtllMq6hglTc0Oq48cYbzcsvvyyFYKlQKYTpb3/7m/n444/NVVddpYqGEgGlxIknniiFYKlQKXLWww8/bM4991znVb8SHRR6F198sXnllVdKpnaqFML0+uuvmzPPPNPbUkqFatWqme7du5s5c+Z4e4qbshemiRMnmuOPP95UrVrV26OUCvRtO3fuLM30UqDshYkmXvv27b2trQtzaqOVuuWWW7w9m2HQmP0cB3semiIbOAdQD6PGnzlzpmyDPd+eA/Y8fxz+a7788kuz9957b3HcBn886efxP/violOnTmIgWwpNvbIXJj4EFspxwZgYKlU/qFnZDwhGly5dxB1h3bp1El544QUZuEQIGd/46aefZNDQD9cTDyBIRx55pLn77rtTcQwZMsScfvrpqbEaxkhYIYL99pzVq1eLO4Q/nqZNm5oWLVqkzuF/NKBxCRTjOvvuu6+8h2Kn7IUJv6QDDjjA2yo+VqxYYT744ANRkGy77bYSyDz777+/WbJkiXdWxaBC3meffWQczcbx5z//WQSOMTk/qJ3tOQS/dnPs2LGmSZMm5vbbb08dHzVqlFgVPPLII95ZWx/Gm0rBxKjshYkBvGJWhzdr1sy8//77UntSM+y2226mevXqZv78+VIa8z8D1AhcJrDqoDZjzSpqM0ytGJimRqNGCgM1JLU4vkb+dZMw6Tn88MOlyWibpVsb3gmFYrFT1sJEaYadVtwwvkUGtwE/HgsZnk42gnDooYdK7cKYWOvWreU4wtSmTRux3MiUmZcuXSqZfvvtt5dmHE6OCBc1Sy4geI0bNzb+QW3+p6mV3szcmmDpErZQiJOyFiY+AE2UuMH57auvvkqFU045xTuy2cwJm0GEhT7KAw88IB1/awNGZqbZRWamX4Uw8os3sIXmGYoCapYNGzaIcFIj5wOW9EEgrKQrDujrlQJlLUxkgGIQJmpHqx0j+AePly1bJqP9++23nxzDKpl+1Ntvv+2dYaTZhRU1gogiwF9zMZcCQoR2j+YQcSCIs2fPllovLFzH+6I5RZwW7sc4XXqNtTX5+uuvJW3FTlkLE30lPsLChQu9PcVHw4YNpX9kaxoy8uWXXy5NOiZxYZtMTE1jm4lWYICmXK1ataRph7ABfS8UB1BRX8sP90AJsmjRIrHatgwbNkxqxR49enh7tj4ULvTlip2yFibgI7z11lveVvHRoUMHc/XVV4t6nD4PTTj6SKeddprUElhBVwRC8Ne//lUmfkHrRRz0u7C2RsiWL18uxxs0aCDnY1GQCZQgf//7381LL70k8RBWrlwphRFxxQXPUArCVPYuGPfee69oonAG3NrYsR3erV8RQtMTTR3vHWHwjzsBTT2OUyNQ86Q3r2y81Ly2c862VRJwPvuJkxqM8/ifX3986fHYfTQP7bgO19t0xsGTTz5ppk6daiZMmCDpzIbOTpQjuQgT/Qk652vWrIlknjYlWrp16yZTro0YMcLbUzHqzxQhdevWlc46fQqltGBo4+mnnzY9e/b09hQ3ZS9MNA2uvPJKc9ttt3l7lFLh5ptvlpppr7328vYUN2UvTIChKx1wBjSV0gDt5vjx40WbGKavVAxUCmGi/cyHwdSGKaWU4ueSSy4xgwYNSmkhSwGZnQjJd62tQRuEZsiOh7iEziACkkuJRXruv/9+aTowoFlKH6mywRzk2CuigQ2jZPKDRjOu/Czz5qGKdV2V8lBRzZvHJPDYsuU6bx7aGLRCmO5MnjxZBaoIYcCYyf0RpFxtCwFVf1z5udJN3M8YD5N0TJo0ydx3333OV2FQ8ueMM84QDd706dPzzjeqGt+KIIB0agcPHizu7DfddJN3RIkLLC6wvsDig2mroyiAtwaVTpgAgaIUxFqbmUMPOeQQ8/jjj3tHla0FzTkmurnwwgvFBIoaCdvDUqVSChNg3oOLNm3z3r17m2uuuUY8XLGTw0paiQ7sBjt27ChOh9gUvvnmm9JaKGVBAl3sLAlpZTJ/5iDHqBPL6S+++EIUFDjn8ZHjsk0rB7ALtEubbty4UaYRoODCaZJvSP5zhdrm5YhrYQJUnxh4og2i1uLDcx9s+lwIEooP4nWtZcJ9g/kZcBB0jas0o1LG6rxGjRryi3ARXK0W6EeFKUeiECbwpxnhssEFUX1kbA5ZNpTM6RqXaUYgbcBXSxeIzoFSFybXRPWRGYimE0/p75qo0lyuwlRpFRCK4hoVJkVxhAqTojhChakMaNWqlfefEicqTGVAPgtlK+5RYVIUR6gwKYojVJgUxREqTIriCBUmRXGECpOiOEKFSVEcIROqROEawAQUBOJ2zbfffis+Rq7HV6JMc1QuGCyAzWrkuH67Jqo0WxcMJsVxTVRpDpM3ZKovpi8qpam++BAIkusXFmWamdkmiveMIOHPxIxLriHz8I5dpznKQiuq9xwmb4gLBq4MUZis82D5TNeUDbxgd955Z+fTiEWZZtwOonjPrDRI7YSXsGuiSjPuFwQWZ3NNVGkOkzekaEeKowhRxW19d4KOFRpKMV4IOlZoiDJeCDpWaIgqXkK2uN22k5StRrJFIROTsCYuNTX/P/TQQ95RJQ5UmEoUVvVj1XYm01y9erW5+OKLZZISJT5UmEoUmhW4XqC9ojPPItLNmjXzjipxoMJUwjBxo+WII45w3ulWckOFqYRhEkc7wcfRRx8tv0p8qDCVMIzTsF4v/PnPf5ZfJT5UmEqcffbZR37pMynxUtbz5i1btkwWNwsLo9x05qNwA+ddMHru2mrj73//u1m8eLHp27evt8cdUaWZeBkAJd+FhZlgmQ8+GzoJZY6EFSYyGn0Jlo8JCwPCaMpcE1W8ZEpCtneRD1G+CwgbN1NUI9R//etfvT2ZUWHKkVyE6X/+53/kYyily9ChQ+VXhakIhAkrc6V0YWlOKHZhUgWEojhChUlRHKHCpCiOUGFSFEeoMCmKI1SYFMURKkyK4ggVJkVxRJU1a9YkopiBphhmJ1q6dKk5+eSTddC2xGHQlglYRowY4e3JTFQzKoWanWj9+vUJMqbrTB+lzdiGDRtk3rxsU0W999575thjj1VhKnEQJqwPbrjhBm9PZvA8jis/yySUpWZOtHbtWpnqK4w5ER6oKkyljTUnuuWWW+S3ImI1J6I6LLUAQfuDglI+BH3fYgqqgFAUR6gwKYojVJgUxREqTAF8/fXX5pBDDtliZQlUs926dTODBg3y9hizZMkS07hxY7Pnnnumgv8aG4//uA02Hs7nHM613H333XIOx+z/QYE4gq6viExp8j8XpD8bz847sAQ9O8E+P/GlX2PvzTOVIypMATBWgQPizz//7O3Z7Gr91VdfmfXr18s2malTp07m0ksvlUnzCd27dzf9+vWTY2DjYb8957nnnjPVqlVLxcM9OIdzgQw3duxY8+mnn8qxHj16pK5t0aKFXEscbF9xxRW/uz4bQWm68847t1iWhl/c/U866SQ5zv149r59+6aEA+0W4zmTJ09OxUHa7Ttr2bKleeGFF8yqVatkG5irgnez3377eXvKCxWmPHnllVfM7rvvbjp27Gjq1KkjoUOHDuabb74xn3/+uXfWZnbcccfUOUwMUpFKf/To0TKPOOpdYA0jey1qWa4lDrZ32WUXOScf/Gnaf//9ZUURxuUQlttvv920bt3aXHbZZXK8UaNG5sorrxQhmz9/vheDkfGcmjVryjnVq1cXjZYFYSK9s2fP9vYYM3XqVNO0aVPTpEkTb095ocKUJ3369DFTpkyR8a5x48aZunXrmlNOOUVK5rC1RDqU2jNnzjTnnXfeFhkzapjFiZqHZhpLsrDdvHlzU7VqVTlODUStiFA9/fTTso/zEfRM4y4I/KGHHirrRiGg1FoUQNR4Nt5yQ4WpAs4880wREgLz07311lveEWM+++wzGRDea6+9pLnFpB/jx48vyOKDlSzIxMzUmgsMYlMT2LSSicm8FXH99denzu/Vq5c54YQTzDHHHCNmM4z0p9ce1ELUXj/99JNsf/DBByIwWKIEgQXCOeecYz788ENp6tHEI51HHnmk86nDigUVpgoYNWqUlKYEagz/xPhkfErYGTNmmLffflv6IHvssUfeNQq1EsJ61VVX5byIG4uG0XexaW3Xrp305yoSqP79+6fOJ2zatEnubfnkk0+8/7akfv368rt8+XKZTbYiwaD5yDuZM2eOmTZtmjTx7KSZ5YgKUwXQJ7KlN/0CW+tQOr///vvSZEGjxXFWlJs3b16qA54rKB2oGex0x7mA6Uzt2rVTacUeESUDNUEmaJ7a83mGww47TMyvEA5qHITFz8cffyx9KoQBIX399dezCgaFDTXRE088YRYtWlTWTTxQYcoDhApBe+qpp0ThAFio03RC67dixQrZFxYyPdf37NnTiYHmO++8IzVkWAUFxqHUijwT19A8QwDoCwKFx/Dhw6XP1KZNGxE6rjnggAPkeCYQTISJPthHH31U1k08UGHKAzIEWjdK2YMOOsjUq1fPnHjiieIiQLOGUp2MyPpJ0LlzZ/nNBH2UU089VeLJB4SRe3E9AaHm/mjYMoEFtj2f/hE1Ks+EMJNeFlK79tprU8fRLqJ8oDlJH4t7tm3bNhUHfS7ioPn48ssve3fZPBc6NR+hnJt4oJNQBmDHYiil7YLAdMy//PJL6YjvuuuuqW1KaKAmoGSnpuJ9ch6uIrzXGjVqpGqc9Hgo9dmm2YW6GvDXIrMSn39B4nXr1sk7ZazJlvD2ej+kBaEO6nvZZ0OA/fAu/fHaNNipjFmpkPQiqGgx77vvvt8tlkzzr0uXLiLIDBkAWj8Gak8//XRz9dVX51UzlcoklIxpJJInJd+ZW5IfI/HDDz94W27BoTFZCnpbmVm8eHEimUG9LcUFY8aMSSRrpEQy03p7fiMpfIlk3y0xffp0b08iMWvWLNn34YcfentyZ+DAgRLCEGd+1maekhNnn322NAGDlvBHq4hion379tIHRHvH+ZgPMYRQ7qgwKTlBU5QmZFBzjaYsWkUErUGDBiZZQ0n/CeFyoVgpdlSYlEigv2aVE7mOm5UqKkyK4ohtkv0m0fCgqXAZiBPNVdCxQgNNhjBpTtdYKaVL2DwaZ36usnHjxgRqRNeGldyY4FpFCYxnMDNRtnb4u+++a4477jidUKXEyWV2Is6LKz/LOBNjDK47iDwUNYN1JXAJ4yosiJytLY4w6exEpQ/CRI0TZnYiLNTjys/SZ0KK0c64DLZkCDpWaODFhkmz69JJiY+weTSXc3MJofKznKEoSsGoMCmKI1SYFMURKkyK4ggVJkVxhAqTojhChUlRHKHCpCiOqBSetsy6qpQudpalYve0LXthYnbSsDPiYMyIdYXrdwG8C0xcGCl3CZO3MMtq7969vT3uiCrNxMu7zvb90lFhilGYmJ8h+XzeVnZIM/ZXQV6khcJMqaTX9Xt+5JFHZJJ85lpwTVRpxn6OuSuYUyIX8OTNhgpTjoQVplyJMs1RfeT7779fZp6lRnVNVGlGSBEoJoxxTZzCpAoIRXGEClMZcOCBB3r/KXGiwlQGRNHHU3JHhUlRHKHCpCiOUGFSFEeoMCmKI2R2Ika5Xc+XwEwujH24ntgCGIxldiLXI/NRppnB4Cje88SJEyWw3KVrokoz8fKu+YauiSrNYfJGlU2bNiWiyJiYi/BgUczmyWxDLP/IShIuiTLNURUADz30kAiTXSndJVGlmRU2CKyJ65qo0hwmb6Sm+nI9YsxoMSEKtS1LnWAB4TrTR5nmqExzHnjgAfPwww+bV1991dvjjijNiQhhzINyJao0h8kbIr5Uia6DJehYocESdKyQYAk6VmiIMl4IOlZoiDJeCDpWaIgyXgg6ZoPbulDZqrCI2HXXXSeTbfK/f8U+ZeujwlTCsLLh6tWrxbhzwYIFsh6SEh8qTCUMq5dbLRNr6+bq0qC4RYWphPnzn//s/bf5f9caLCU39O2XMHXr1jU1a9aU//2CpcSDClMJg/q3cePG8r+6YcRPWXvafvjhh95/4SDNDMxFMc7EuArjYq7f8+jRo82ECRPMBx984O1xR1RpJl4GV/mGudCoUSPvv8yo23qO5DKhSr9+/byt7FjXb8YMXIOiIIo+zfr1682GDRtkQWbXRJXmMKY56XTq1MlcddVV3lZmVJhyJBdhYqovltNXSpcbb7zR7Lzzzjo7UTEIk64cWNqwciAUuzCpAkJRHKHCpCiOUGFSFEeoMCmKI1SYFMURKkyK4ggVJkVxhAqTojhiG8w6mCyCASmXwZqMBB0rNDAgR/xBx/wBOzulPAjzvQlx5meZ6ovM6doejZsTXI9Ew88//ywz0GSz7XrvvffMscceqxYQJQ4WEGTWG264wduTGc6LKz+LOVEUlsFWWqOwwGZhrx133DHr7ESYE7Vv316FqcRBmKgVbrnlFm9PZqKydA+Tn6XPhGWw65CasSXgWKGBEiJs3Ep5kMv3DtpfaAiVn+XuiqIUjAqTojhChUlRHKHCpCiOUGEKwTfffGM6duwoc9P5w/Dhw70zNvP++++bww8/PHX87LPPliX6gfnA/dtcy7mLFy+W/Ry32PvZ8zPdn2C9iDOdQxy4tfObfswGJv2vKA35XF8ZUWEKASpRxqxatWpl7rrrLgkXXnihue+++1KZmd+uXbuaLl26pM757rvvzEUXXSQC8eWXX8oEL2gimfxkyZIlMrVxjRo1ZD/HLVOnTjUvvPBC6nx7/+7du6fiHjFihFmzZo3ZuHGjXIMXKgJw8803p84hvcSBmhj1sv86/7Mww1FFacjn+sqIClMOMEedLY3btGkjYx/ULPDUU0/JPHZ9+vRJncPMQYMHD/6dez0rVzRp0kTmB08ft0DQxo0bZ3baaSdvz28waYqNe//990+tb4SwLly40Oy5557msMMOS51j59RDbbv33ntvcZ3/WapWrSrnWdLTkOv1lRUVpjxZtWqV1ATVqlWTX5o6LVq0kMFkC8JFJiQzWjh37ty55ogjjthivwVBq1WrlmndurW3JzsIK/emtqNJVij5pEFRYcqJsWPHmpYtW0oYMGCAOfLII2UmVZphTORBbVMR77zzjunWrZsZNGiQOfjgg729v0GNMHPmTNO/f/+cFgJDKC+44AJz2223mZ49e6bSSHpzJd80gP/9EJjPrzKhwpQDJ5xwgrnjjjsk3HPPPSJEZGBLtj4DzbTLL79cmlA0C9OhRkA427Zt6+0JT/Xq1c3s2bPN8uXLzdVXXy1pJL25Ukga/O/HpqEyCZQKUw7Q9KFGIdA3oWk1b948MTPZY489JCNXxPbbb2/atWtnmjVrJhmNJp+FJhrNv759++Y1PRo1Cto0lCBHHXWUpJH05kKhafC/H9JAv2r+/Pne0fJHhSlPmEcN4WFyRObwIwNS2/gnvKRUZiZSv9CwDu+5554rGrJbb73V22ukaYWA0sfKhwcffFA0fyhA8l3rt9A0+Nm0aZNZuXKl9CkrCypMOUCfAJUwAW0eaumhQ4dK5j355JPNTTfdZM4///zUOXfeeaf0ZdK1XWjdEL7x48ebN954Q/Zh6Ux/Jx9BoFZ69NFHpT9WiCAUkgbwvx+aivXr1zdnnXWWd7T80RldQ8BzLFu2TFYI90MHvWHDhim/Ksz/qa2oIYDMuc8++0jmZFFrSmt7Pmn66KOPpB+FSwlx23MBbSHvkPOJj/vXqVMnpa62aWIfqmruy5gVzU1L+j3BXsfizPZcnOlIS0VpCHM942p+WNlwr7328rbyp1RmdFVhUoqeUhEmbeYpiiNUmBTFESpMiuIIFSZFcYTMToSmJshOrBDQQBFcdwRBZyeqXKCAoPMfdnaiuPJz8p7byM05yWUgTiwDgo4VGpgPj3QHHfOHbMKmlA5hvjchzvws4ss/jC24DNycBws6VmhgXIP4g475A8+llAdhvjcB4srPIkx2GiOXwRJ0rNCAH1HYuJXyIej7poew5+UaLEHHbFAFhKI4QoVJURyhwqQojlBhUhRHqDApiiNUmBTFESpMiuKISuHP9Pnnn3t7lFJk2LBh8qvOgTELk50oUSldPvvsM5kWQIUpRmFi6i0742oYSC+mStnizYewxrm5MmvWLJlujMlQXBNVmn/55RcJ/gk7s4FL/n777edtZUaFKUfCClOuC0RHmeaoPjKzEjFpCel2TVRp/uGHH2RKZ+aRyIUw6YhTmMpaAcELLfeA8WUpPiu1XdD+ikKxo9o8RXGEClMZEKYvoUSPClMZoEu6FAcqTIriCBUmRXGECpOiOKLK+vXrE1EMzDHGQ4hiAJRVJZjnm3S7JMo0RzUAyjIyEydONC+++KK3xx3FNGgblqjSHCZvVFm7dm0kU31hScBcDVGMDzDgx6T4rl9YlGlmwC+K98zqF48//riZPn26t8cdUaU5ykIrqjSHyRtVNmzYkOChXGdMHooXxmi0a77++msp1VzXTFGmmRUyonjPDz30kPnb3/5mXn75ZW+PO6JKM4UhNQhWLK6JKs1h8kZZmxPlSimaE91///3S1Hvttde8Pe6I0pyITL/77rt7e9yh5kRKzpAZn3zySfP2229LH5L/p02b5h1V4kCFqUShz0jz7umnnzaffPKJueKKK1ILoSnxoMJUotCMYUFmVh2k/0Hz5oADDvCOKnGgwlTCsG6s5fDDDzfbbbedt6XEgQpTCcMi1Va75BcsJR5UmEoYhgfsAsxHH320/CrxocJU4rA6OvhXWVfioazHmVh6f8KECd5WdhjlJrgeDIZff/1187IjjkfmX3rpJTN//nxz1VVXeXvcQZrJF64HQPPJG4xJnXvuud5WZnScKSJ4saiPw0KmIcNHAQLqWpDg0EMPNQMGDPC23BKFjRvwjm1fLwxoLFesWOFtFS9lP9UX8+a9++673h6lFLFTfOlUX0UgTLqmbWnDmrZQ7MKkCghFcYQKk6I4QoVJURyhwqQojlBhUhRHqDApiiNUmBTFEWU/znTYYYdJSGffffc1I0aMSI3E33TTTWKaYxk+fLhp1aqVt2XMm2++Kfv84KDHdQ0aNJBtRukvvvhiMcMB/z047/XXX0+dT3zXXXddatteiysFv+lxWfzpwo8JM6IlS5bINhx55JHmvPPO+91+P8TBmkcLFy7c4h1UxIYNG8xFF11k1q1b5+35DX+a0s/bddddZcmbnXfeWbYnTZq0xX3T30vQc2PQW7169aIfZ/q3//u//5OEc6JLsHEjbj64a8jETG6RLW6eizR88cUX8vGs8NkPShpthkSQLr30Uvnob731ltiB3XXXXalMQubwx8M5119/vUkWRnIc4Rg0aJBp2rSp6dKli0xlxce/8sorzahRo8Sqm33YCl577bUSH/e017OfRdms9Tf733//fXPNNddImmwms5mUdBP3mjVrUoOanHPLLbfIWkannHKKCBaZe+DAgeb444+XfYCl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2xM9NWvWlAFlMjt9CxQBnTp1MmeffbZohNC+UZPMnj1bjtPfGTFihKjFGUhlsPXDDz+UiVIYnyIuaizGldgmXsZdyNgIFdehHrfaPQRu+fLl0vQjfgIDvKeccoqkgb4cfSdmMyJu/zWow7mHhcFxhJD02rio/VCpowjZWtC8hGOOOUZ+K4IaM678rBYQJQQDrmj3GHANGpAtV9TTVlEqGSpMJQRNK2raXXbZxdujFBMqTCUE/SLs5LDTU4oPFSZFcYQKk6I4QrV5Hqif7RTDzNvttyZgHAh3jurVq28xRS/qZL+lN6pt259hllUsFXCzsCv6kd70uNE+oaWzg7hYMhAPtl5g722x9+B89vMerO2efQa+p42DdKxcuVKO++EY9oIMMaTHk459lvR0LV26VOJAXcx98duyz2+fC2t03plNmz0n/XhFlIo2j5H0RPKkhGuSLy/xww8/eFtuWbNmTeLnn3/2tjKzePHixI477uhtVczatWsTtWvXTtSrVy/xwQcfeHs3c99997E6cKJXr16y/a9//SuRzAiJjh07Jg477LBE+/btE8mMlrj22msT69atk3PGjBkj+84777xEu3btUudMnz498csvv8g5nHv33Xcn9tlnHznOeW3btk3MnTtX7sHx0aNHJw466KDU9WzzzZKZRs7lPhbSlMycsp/jwPGkEKfSaeNJClEimbkD40mHY/44geewcdh3xz7LlClT8JNLvbP0czh+8MEHV3hfy8CBAyWEIc78rM28NFgwzL+cJSUS1ttJofT2GJPMGObMM8+UQTwsHF566SVZEpPBU79fESU3683iCMg5nTt3Nueff77UaJzDudjQDR06VI5zXv369c0FF1wg98ATFoNXLBg4zmApToa4bqRDiYztHaY+6VD6T5o0SeIgJIXeOxIN1FqYQGWCtGIFcv3114sDZLmgwpRGsnYQD1OECGiikUH9znLz5s2TBZmTpWrKigAN2+mnny6rn1tDVFzPBw8eLM0OSNZSIpTJUlksHzBAxev11FNPleOcx/k0HRFg4kTAsIcDXAAgyEockx8sImhGxYktJLCyyNRspLDCuBdXlHJChSkNzIHIzLafQ83AR/cvs08folq1alLi+8E6AVMgbPGAjI2RqwXB23///eV63Ksxd0rvL3A+1yEYFkpyfKPw2KXmTF9uk+MIMe7uxJ8P2BQi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" + } + }, + "cell_type": "markdown", + "id": "6012cfea", + "metadata": {}, + "source": [ + "## Упражнения\n", + "\n", + "### Ответьте на вопросы\n", + "1) Какие предметные области входят в Data Science? Что между ними общего и в чем различие?\n", + "- Искусственный интеллект, машинное обучение и глубокое обучение. Для всех областей небходимы данные, на которых они будут предобучатся, а разница в том, что каждая область использует разные математические методы для решения задач.\n", + "2) Как вы понимаете термин «алгоритм»? Как алгоритмы связаны с блок-схемами?\n", + "- Алгоритм - это некие последовательные инструкции которые мы прописываем в коде для того чтобы компьютер мог считать их и выполнить. А блок- схемы это тот же самый алгоритм только представленный визуально.\n", + "3) Какую программу можно назвать хорошей? Запишите все характеристики, какие удастся придумать.\n", + "- Надежность, функциональность, производительность, эффективность, поддержка, удобство использования, масштабируемость,читаемость.\n", + "4) Какой язык понимает компьютер?\n", + "- Машинный код\n", + "5) Чем языки программирования отличаются от языков, на которых мы говорим?\n", + "- Языки програмирования интерпретируются в машинный код, а человеческий язык нет.\n", + "\n", + "#### Правда или ложь\n", + "1) Машинное обучение - это инструмент для извлечения знаний из данных.\n", + "- Правда\n", + "2) Глубокое обучение - это то же самое, что машинное обучение.\n", + "- Ложь\n", + "3) Все инженеры-программисты также могут считаться специалистами по данным.\n", + "- Правда\n", + "4) Статистика - важный инструмент для специалистов по данным.\n", + "- Правда\n", + "5) Компьютер может принимать решения, выходящие за рамки данных ему инструкций, подстраиваясь под изменения среды.\n", + "- Ложь\n", + "6) Компьютеры понимают языки программирования «как есть».\n", + "- Ложь\n", + "7) Некоторые языки программирования компилируются, некоторые интерпретируются, а некоторые используют и то и другое.\n", + "- Правда\n", + "8) Все программы выполняются последовательно.\n", + "- Ложь\n", + "9) В IDE есть встроенный текстовый редактор.\n", + "- Правда\n", + "10) Компиляторы и интерпретаторы - это такие механизмы, наподобие привода для компакт-дисков.\n", + "- Ложь\n", + "\n", + "#### Практические задания\n", + "1) Напишите алгоритм для расчета простых процентов от некоторой суммы.\n", + "- Начало программы.\n", + "- Ввести сумму P.\n", + "- Ввести годовую процентную ставку r (в процентах).\n", + "- Ввести срок t (в годах).\n", + "- Перевести ставку в долю: r = r / 100.\n", + "- Вычислить сумму процентов: I = P * r * t.\n", + "- Вывести I.\n", + "- Конец программы.\n", + "2) Напишите алгоритм для вычисления площади прямоугольника.\n", + "- Начало программы.\n", + "- Ввести длину a.\n", + "- Ввести ширину b.\n", + "- Вычислить площадь: S = a * b.\n", + "- Вывести S.\n", + "- Конец программы.\n", + "3) Напишите алгоритм вычисления периметра круга.\n", + "- Начало программы.\n", + "- Ввести радиус r.\n", + "- Задать π = 3.14.\n", + "- Вычислить периметр: P = 2 * π * r.\n", + "- Вывести P.\n", + "- Конец программы.\n", + "4) Напишите алгоритм, который находит все простые числа меньше 100.\n", + "- Начало программы.\n", + "- Для каждого числа n от 2 до 99:\n", + " - Предположить, что n — простое.\n", + " - Проверить, делится ли n на любое число k от 2 до √n:\n", + " - Если делится хотя бы на одно, пометить n как составное.\n", + " - Если n осталось помеченным как простое, вывести n.\n", + "- Конец программы.\n", + "5) Напишите алгоритм превращения предложения, написанного в верхнем регистре, в обычный для предложений регистр.\n", + "- Начало программы.\n", + "- Ввести строку text.\n", + "- Преобразовать text в нижний регистр.\n", + "- Сделать первую букву text заглавной.\n", + "- Для каждого символа, который следует сразу после «. », «! » или «? »:\n", + " - Сделать этот символ заглавным.\n", + "- Вывести преобразованный текст.\n", + "- Конец программы.\n", + "6) Составьте блок-схему приготовления льда из кипяченой воды с помощью холодильника.\n", + "\n", + "![image.png](attachment:image.png)\n", + "\n", + "7) Составьте блок-схему для нахождения суммы всех четных чисел меньше ста.\n", + "\n", + "![image-2.png](attachment:image-2.png)\n", + "\n", + "8) Составьте блок-схему для вычисления квадрата всех нечетных чисел от 1 до 15 включительно.\n", + "\n", + "![image-3.png](attachment:image-3.png)\n", + "\n", + "9) Составьте блок-схему вывода таблицы умножения на 3.\n", + "\n", + " ![image-4.png](attachment:image-4.png)\n", + "\n", + "10) Составьте блок-схему для расчета сложных процентов (с капитализацией).\n", + "\n", + "![image-5.png](attachment:image-5.png)" + ] + }, + { + "attachments": { + "image.png": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAMwAAAKQCAYAAADT8ZVXAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAGHtSURBVHhe7Z0HnBVFtrhrxn3/9fHeE4yIIkEUE4iSQVFQDBjBHDEhrrIqT0UFcwbMgrBGUIyAAQQEFFcRE0GCiGBEVOQJawDWFdn1/u936JrtufbM7bq3m+meOd/vV3PndnVX162u0xXOqVMlmSzGkf/7v/8z//Vf/2X++7//2zsSDf/85z/NP/7xD/M///M/3pHo+Pvf/27+4z/+w/y///f/vCPRkMY8//LLL+Zvf/ub2X777b0j0VHdy7nU+1QUJQQqMIrigAqMojigAqMoDqjAKIoDKjCK4oAKjKI4oAKjKA6owCiKAyowiuJAyT/+8Q9n05i4zB9+++03MYGIOl1Yv369KS0tNZtssol3JBrSmOc4zUyqezmX/Pzzz84CQ2H/4Q9/EKGJEgrlX//6V+TpAoVdUlISy4NMW57J77p160ytWrW8I9FR3cu5JJsRZ4H57rvvxPiSECUUCMIYtVEnZF8MUthRF3ga84ywYHy53XbbeUeio7qXcymS5RosQXHFBEtQXLHBEhRXTLAExRUbLEFxxQRLUFyxwRIUV0ywBMUVGyxBcblBB/2K4oAKjKI4oAKjKA6owCiKAyowiuKACoyiOKACoygOqMAoigMqMIrigAqMojigAqMoDqjAKIoDNdpV7FdffSWfy5Ytk89CiNNUHpeuLKMgRMmvv/5qVq9ebbbaaivvSGE0aNDA7LDDDt63DVR3V7E1RmCWLFlinn/+eTNz5kzz1ltvyTEKiEClr2nw2LG+LQYWXfGyqFevnnzfZ599TMuWLc0pp5yiAuMnTQKDcFx00UXSmhx44IGmQ4cOZo899jB77rln0RVG2SB4LLx64403zNy5c82bb75pfvrpJ7Pvvvuafv36/a4FKhQVmACiLBQEBEH54osvzIknnmhOPvlks/nmm0uhUDhRd3NqOnTzWOrL54IFC8zTTz9t3nvvPWltEJxiSYrA8IZwZsWKFZk1a9Z436IjW+CZbN/a+1Y42YeV2XLLLTMDBgzIrFq1KpMtkAwrS5WNg32O33zzTaZHjx6ZVq1aZbLjRC+2MKKqG0GsXbs2k+1aet8qp9rNkt1+++1m0KBBZsSIESYrMCYrODIg1+7XxoPWm5aAsQ3P4cgjjzRHHXWUeeaZZ7wz0ku16pJl32bmxx9/NI8++qipX7++NLNK1cOa+dGjR5s77rjDPPDAAzI54EpixjDZAZqzwODBw65xjhrkt5B0hwwZIrNgzz33nGnYsKG2KAmDKXJamDvvvFOEp5DdzwqtG/lwSbckK7nOAvP999+b//zP/5QQJYXqNN5++21z7LHHyiCzUaNGKiwJBaEZOHCgGTdunJk9e7Z3NBxx6rtoucK6DasWXbIWLVqYs88+W2bFVFiSDd2f448/3uy8887m3nvv9Y7mJyldstQP+ukXb7PNNqZ3794qLCmAFy0TAZMnT5aeQdpIvcDccMMN5vLLL4+8e6jEBy84Bv5PPPGEdyQ9pFpgnn32WbPbbruZzp07e0eUNEBPoFevXmbatGnekfSQaoF57LHHpD+s08fpo02bNqZOnTqp65alWmB4Q11wwQXet40LEx889KlTp3pHNgwema27+OKLvSNGzESaNGkifoxtsNdwHudznYU4zuc6C+f5r8+95v777y8Xb0NuOrl5yU1nY8JLrmvXrua2227zjqSD1AoMb6att95aBpFVAboonLIz1WlhwhEn3yhPgQp6xBFHmOuuu87MmTNHArN5Z511lsRxHuf7JypJb8WKFWKXBQjLwoULzfTp0+X6SZMmiZFj//79JR7Wrl0rlsPE2ftQEf3pIIgYn2LbRTzpce/TTz+9yoSGccxHH33kfUsHqRWYzz77TMYvSea1114Ta93DDz9czEQIhx12mAjK119/7Z1VMbRiCAH9fVoGrm/evLlp27at+fDDD8tVdCyG69atW3afLbbYwovZ0PLdd999Mta74oorJJ70EGTyaJc7bGwQ4LQtrUitwFDQmL8kGSo6SjoqL90mtNvdu3cXfQL5b9q0qSxeo4UIggVeM2bMEJMfWjMEhUVbL730klwfVoW2Zs0as2jRIrPXXnuV6c4YeO+9996y1AHriKrgj3/8o/n222+9b+kgtQKD+f5mm23mfas6zjzzTBEEAgLwzjvveDHGfP7556Z9+/Yi2BiC3nrrrebxxx83m266qcR36dLFrFy50sybN0++50KrwTW0BihnqWCvv/66tFIuIFgI2O677+4d2YDVbqOBryr4TXblaxpIdQvDOKKqwTaKVZwEKjMr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O1L9oCx4kHHMkPHY49glzJXrrrtOps732msv70gwKjABuAoMXH/99fKppJNGjRqJnkkFpgAKEZi7775bPpV0svnmm6dKYHTQrygOqMAoigMqMIrigAqMojigAqMoDqjAKIoDKjCK4oAKjKI4ULJmzRpnxSVuenBJE7VdFjpUbLPCuLu54oorRNGkist0g+Jy4sSJZs899/SOBONSN1whXcyEwpgKlfz666/OAoPHEfxDRe0jysX31GWXXSYCqwKTbhCYV199Na/AuNQNV3AKgr1eGJu9UkwCXIOVyKC4YoJ9ewTF5YaoWzel6uC5Bz1jf3CpG66BuhQmDwStdYrigAqMojigAqMoDqjAKIoDKjARw4K2tm3blgtHHXWUWbVqlXeGkf85lhv/+OOPl7vOH+xCucWLF5v99tuvXNybb74pcZCbtj/oYrviUYGJmC+++ELWzONzYOjQofKJ8/Z77rlH4qnwRx55pNl5550lnsD/bGmBwz57bOutty6XTs+ePeXa0047zfTo0aPsPAShT58+EgfoyObPny/H7TmkQVrkTSkOFZgYYFUgvgaotPvuu69p2LChmTlzpniJZ3UhqwcvuOCCsjc/OqXbbrvN7LrrrmXHttpqq3Lp7LjjjnIt0/knnnhi2XnHHnus+eyzz8zSpUu9u29ghx12KDuHNOJYqVgTUYGJGZyIL1y40GyxxRaiv5o8ebJp0qSJrGW31KtXT5boMs9fGd27d5duW926deUTB38XXnihKN5oWZT4UYGJgblz54qr1/bt24tDPnZsu+SSSyTup59+kpakEBMPrj3//PPNPvvsY66++mpzwgknmH79+oVai65EgwpMDNCCMG649957zfDhw6XbxICbPVlgxYoV8unKiBEjxGEDu5KNGTNGNlpq1qyZWj1sRLSkYwDP+61bt5YuE+GII46QbhndM3b9YvCNBxQXOH/evHmma9euplOnTpIudlizZs2SLpmycVCB2Qh8/PHHMlingjMbRsV/9tlnvVhjZsyYIV04O9MVBN0urp82bVrZ5kqcj/EpYyOdAds4qMDEAGOYAw44wHTo0EEClZpu1HbbbWc6d+5sRo4caYYNG1YW/+c//9mcddZZMrNVEYx5rrrqKvk85JBD5DqE77zzzpNJgEWLFplRo0ZJawbswKxEjzryiximeNG7+GGMwSZJlBkwo0UX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7dubd955x3zwwQey7749zjn+tPjkRZAvD0BaQfmgbCijGg0tjCsrVqzIrFmzxvsWHevXr8+sXr3a+1Y5ffv2lRAls2fPztSqVSszfvx470gmM336dDn26quvZn744YdM27ZtMwMGDMiwTQjwmX0bZxYsWJBZvnx5pkGDBnL9F198kenSpYscB38czJ07N5MVpEy29cj07NlTjhHHOZxr8R9btGhRJvtGzjz++ONebEaeQ7ZCZwYOHOgd2QDfc9MKkwcIupZrKAfKKEqyrabkIx8udcOVtWvXZtatW+d9qxxtYfJgWxaaa7zUfPrpp+bQQw8t29iHz+OOO07Wpvt58803pdvapEkT78i/YduGhx9+WLpJLt2bzTbbTLpd5KFYCs1DTUcFJgC6WGeffbaE++67zxx11FHiH2zVqlVimmF9hlUE12ffxObyyy8P3M+ELg/99t69ezv1ydnP5fbbb5fdlW3+zj//fLNkyRLvjPAUmoeajgpMAM2aNTOdOnWScOqpp8oGUu+9957EMfjMnRTIhesRlHHjxsm4ww92eCNHjjTdu3c3rVq18o6Gg4EpbmMZbyAk5G+fffaR8YULxeShpqMCEwCO85hRIvAGznZdZc8WZqmobNm+vXdmMFzPrBkzTdOmTfOObiDbXzcLFy40Z555ZkG7aZFedjxl/vSnP0n+2NJv22239WLDUWweajIqMHnAkyOb4FKxmO1i+pWZMo4BY4FBgwaZRx55RL5beHPTOt11111l4yBAiA455JCCxg3ck3vTgnXr1s076k4xeajpqMAEwLiFbfIIvMnp8px88skydkCXwv6eHCce3cXMmTPNzjvv7F29AQSMFoBKPmzYMBEswOKVSYIwhn650LLMmjXL9OrVS/JSKBXlgbz269dPpp7ZX9O1q1cT2OT6LN7/oWGOn1mjMIoeF1g2wBghjGtUukjAjFVU8HuaNm0qA/wddthBAt7ze/ToIT6OAR/AHENoiOctTfeL/SipiMTTClHZmNViloxzmI1q3LixTCDQ+oipeEmJqVevnuhSuI4ZN1ox1obYyuw/xvlY9XI/25WyaZBm3bp15RhwbzZm8qdl81dRHvg9bEfONQhU/fr15TogH3vssYdp06ZNpN04Wme6hvm6lS51wxV6EZQFIR+q6VeqFNX0K0o1RgVGURxQgVEUB1RgFMWBUmYIXAMOA5grCIorJjCwC5susyZK9YDnHvSM/cGlbrgG0sVnQFBcbiglI66B6TduEhRXTCDTtgDzBRWY6gPPPegZ+4NL3XANVmCC4nJDKdNproHEmb8PiismYNgYNt0wPqSUdMBzD3rG/uBSN1wD6YbJA6GUE10Db3d7kyiDVRwFxeUGFZjqA8896Bn7g0vdcA3UZepTUFxu0FqnKA6owCiKAyowiuKACoyiOKACoygOqMAoigMqMIrigAqMojiQ6gVkeGHs2LGjd0RJI7ieTdMCstQKDGvr16xZ433LjzXnidpCwNohoQWOGtbWs9w5amcVWGrgY8A6I4wS13LGA89ll12mAlMILoWyYMEC779wkC6VmoKJEioIrpcoj6hh/T4uF/ApECX4VcNfGo4Bo6aQcsYxYj6nHiowASSlUFyIM8+8qXHnineaKEHA6c5uv/323pHoSGM5u+RZB/2K4oAKTILZaaedvP+UpKACk2DwF6YkCxUYRXFABUZRHFCBURQHVGAUxYES9mj0/g9NIcqpMKASYr496nSBdNE+x6HpjyvPBx98sOx4TIiSOJWtaSxnlzyXohxzDWQ+6HgUAYKOFxviSpeQtrQhrmcIQcejCHGl7ZTub7/95tzCfPfdd/J2ivoNxZuP1itqCwLItqTydor6DRVnntnu+4wzzpC9LKMEOzI0/fn26iyENJazS54LamEsQXHFBEtQXLHBEhRXTLAExRUaMNWgy4SRJHZf/B90XqHBEhRXbLAExRUTLEFxxQZLUFxu0EF/AmHD1759+5rPPvvMPPPMM/K/kgxUYBLIFltsYR599FGzYsUKM336dNkiXEkGKjAJhPUvbI9nOeaYY7z/lKpGBSaB0FdmStni/1+pWlRgEooVEhZ5saGskgxUYBIKuxwDOyjHsXOwUhipXXHpOhCOyzohTq253f772muv9Y5EA3oY9uRPyhJlJjnyrf50qRuu1IglynfccYf59NNPvW/5oWLLPHoMJhukTSWJmgkTJpidd9458i6Z1e9suumm3pHocC3n77//3gwYMECdYBSCS6HgZunrr7+O3EGEsnHp06ePulkqFFeBgbvvvls+lXSy+eabp0pgdNCvKA6owCiKAyowiuKACoyiOKACoygOqMAoigMqMIrigAqMojhQkNcYtkrAIDDq/UVc9i25/PLLxRxFFZfpBsXl5MmTxW6u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NJazS56z5wUs9M8TMA5ACx0UV2zwMhV5IL9py3Nc6VIOVMCguGJDGsvZJc9qGlMkceZ5v/32k9ZFTWPUNEapBPawYTdjPIx+/vnn8j+VXKl6VGASCALDBkZffvmlbIvHbsn0s5WqRwUmgXTs2NHMnDlTtsVjSz5miOLoiijuqMAkEGzIWrdu7X3bMFumJAMVmIRy8MEHyyc7JOy///7yv1L1qMAkFCswzGTpVnrJQQUmodj9UqJenqwUR6x6GJw42O3Bw8Dglmswu4kapmUxf4h6f5E483zUUUeZww8/3Jx33nnekWggv0xZb7nllt6R6EhSOVM/MS/Kh4seJlaBYR959o4Pk2kgKwQ0qlFjfyYa3SiJM8/Lli2T/VOiniEjv2j6ozZfgaSU89q1a0XI2KwpH4kSGB74O++8E7nmV1EqY/r06eaNN95Ip8CgT6hTp453VFHi55577olFYHTQrygOqMAoigMqMIrigAqMojigAqMoDqjAKIoDKjCK4oDqYULw4YcfmuXLl4vFgjX5+Prrr82MGTPESHKLLbaQY2y/wQpJS926dctdA7nndO7c2dSvX1/SmzVrljn00EMDzT/8eQD2VOE55LL33nuX2Z99//33ZurUqbK812LvByz5nTx5sughctlxxx1lXU5aiUsPU/Lrr786CwwuejA733TTTb0jwSAwuPJJu8AMGjTIvPzyy2bChAllL4mXXnrJnHTSSaJRbtWqlQjCXXfdJcJB4VMZly5dagYPHmwOOOAAqbRU8gceeKDsHNbVY2R54YUXmrlz55o///nP5t133zX16tWTe/jx5wGOOOIIs3r16jLhYEXm66+/LhtNXXHFFSIs3Itj1p0SQsfaGuIR8m+//da0b99ebMpy0znkkEPMY489JsfSCAJDeY8dO9Y7UjG4b8JMKIz9WykF5Bqw56FhCorLDTUBhOPGG280W2+9tRk5cqQZNWqU7OtCObG8GGH57rvvTP/+/U2DBg3Kzrn//vvNypUrJa4QTjzxREnH3m/XXXf1YoyYIw0fPtzcdNNNZedcfPHFZujQobKK009l6aQZ7OWC6mRu4DzszoLickMpzb9roAJQGYLickNNgDfULrvsYs4991x5kbAOf+LEidICr1q1Six4aUEQjF69epW1zI0bNzaPPvqoadmypXyPEipB7969zZ577ikC8uSTT5qv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" + } + }, + "cell_type": "markdown", + "id": "53cb46e0", + "metadata": {}, + "source": [ + "### Изучите самостоятельно\n", + "1) Что думают ученые о будущем Data Science? Изучите материалы на эту тему и поделитесь ими с друзьями.\n", + "- Будущее Data Science — это не смерть профессии, а ее взросление. Исчезнет порог входа для простых задач, но вырастет спрос на высококвалифицированных специалистов, которые являются гибридами: ученый-инженер-этик-предметник. Это будет менее \"магия\" и более \"наука\" — сложная, но невероятно мощная.\n", + "\n", + "2) Составьте список разных IDE для языка Python. Узнайте, чем они похожи и чем отличаются.\n", + "- PyCharm, VS Code, Jupyter, Spyder. Дают подсветку, автодополнение и отладку; отличаются лицензией, лёгкостью и встроенными инструментами (научные пакеты, фронтенд-расширения)\n", + "\n", + "3) Составьте список всех компилируемых и интерпретируемых языков. Найдите ситуации, в которых каждый из них будет полезнее в использовании, чем остальные.\n", + "- Компилируемые: C, C++, Rust, Go -> высокая скорость, контроль памяти, системы и встраиваемые.\n", + "- Интерпретируемые: Python, Ruby, JavaScript -> быстрая разработка, скрипты, веб, анализ данных.\n", + "\n", + "4) Создайте алгоритмы для решения некоторых распространенных задач, с которыми вы сталкиваетесь в повседневной жизни. Составьте для них блок-схемы.\n", + "- ![image.png](attachment:image.png)\n", + "\n", + "5) Как вы думаете, может ли изучение компьютерного программирования помочь автоматизировать какие-нибудь повторяющиеся рутинные задачи? Подготовьте список таких задач и попробуйте автоматизировать их по мере изучения этой книги.\n", + "- Да, например создание своего чат бота или помошника сможет автоматизировать множества задачь, от написания расисаний, отслеживания их или напоминия. Возможность обучени модели позволит ей в дальнейшем предсказывать пожелания в запросах и выстраивания оптимального ритма жизни что скажется на улучшении уровня жизни." + ] + }, + { + "cell_type": "markdown", + "id": "b3b3f164", + "metadata": {}, + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "name": "python", + "version": "3.11.12" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/python/made-easy/introduction_to_data_science_and_programming_basics.py b/python/made-easy/introduction_to_data_science_and_programming_basics.py new file mode 100644 index 00000000..4953f878 --- /dev/null +++ b/python/made-easy/introduction_to_data_science_and_programming_basics.py @@ -0,0 +1,364 @@ +"""Введение в Data Science.""" + +# ## Введение в Data Science +# - Data Science - это наука об изучении данных для того, чтобы данные +# обрели смысл и дали нам полезную информацию. +# - Data Science - это научная дисциплина, которая включает в себя извлечение информации +# из огромных объемов данных с использованием различных научных +# методов, алгоритмов и процессов. Эта наука помогает обнаруживать в необработанных +# данных скрытые закономерности. +# - Data Science - это междисциплинарная область, которая помогает нам извлекать +# знания из структурированных или неструктурированных данных +# ![image.png](attachment:image.png) +# + +# ## Зачем нам Data Science? +# Эта наука помогает нам: +# - задавать правильные вопросы; +# - находить основную причину проблемы; +# - находить закономерности среди, на первый взгляд, хаотичных необработанных данных; +# - создавать модели для предиктивного анализа; +# - визуализировать и отображать результаты с помощью графиков, информационных панелей и т. д.; +# - наделять машины интеллектом; +# - определять лояльность клиентов с помощью анализа настроений; +# - принимать более качественные и быстрые решения; +# - рекомендовать правильный продукт нужному клиенту для развития нашего бизнеса. + +# ## История Data Science +# +# ### Данные в древности +# - Около 18 ООО г. до н.э.(ранний способ хранения и анализа данных человеком датируется 18 ООО г.Палеолитические племена делали зарубки на палках или костях, чтобы вести торговую деятельность или подсчитывать припасы. Они сравнивали палки и насечки,выполняя тем самым элементарные расчеты, что позволяло предугадывать, например, на сколько хватит их запасов еды.) +# - Около 2400 г. до н. э.(Счеты - первое устройство, сконструированное специально для выполнения вычислений, впервые стали использоваться в Вавилоне. Примерно в это же время появились первые библиотеки - ранние попытки массового хранения данных.) +# ### Появление статистики +# - 1663 год (В Лондоне ученый Джон Граунт проводит первый зарегистрированный эксперимент +# по статистическому анализу данных) +# - 1865 год(Ричард Миллар Девенс в своей «Энциклопедии описал как банкир Генри Фернезе добился преимущества перед конкурентами, собирая, анализируя и структурируя информацию.Считаетсяпервым исследованием, в котором анализ данных стал использоваться бизнесом +# в коммерческих целях.) +# - 1880 год (При возникновении проблемы переписи населения наняли инженера, который создал нечто, что позже будут называть Табулирующей машиной Холлерита. С помощью перфокарт он сократил 1О лет обработки данных до трех месяцев и занял свое место в историикак отец-основатель современных автоматизированных вычислений. Основанная им компания впоследствии станет называться IВМ.) +# ### Зарождение современного хранения данных +# - 1926 год (В интервью Никола Тесла заявил что при развитии беспроводных технологий планету можно превлатить в огромный мозг с помощью приборов которые будут удивительно просты но при этом будут умешяться в карманах.) +# - 1928 год(Фриц Пфлеумер, немецко-австрийский инженер, изобретает метод магнитного хранения информации на ленте.) +# ### Появление больших центров обработки данных +# - 1965 год(Правительство США планирует создать первый в мире центр обработки данных, в котором будут храниться 742 миллиона налоговых деклараций и 175 миллионов комплектов отпечатков пальцев на магнитной ленте.) +# ### Появление Интернета +# - 1991 год(Ученый-компьютерщик Тим Бернерс-Ли объявил о рождении того, что позже станет называться Интернетом, каким мы знаем его сегодня.) +# - 1997 год(Появился сервис Google Search, и в течение следующих 20 лет название сервиса стало нарицательным, означающим поиск данных в Интернете.) +# - 2000 год(бьш выпущен язык Python 2.0 с множеством новых функций, включая сборщик мусора с обнаружением циклических ссылок и поддержку Unicode.) +# - 2010 год(Эрик Шмидт, главный исполнительный директор Google, отметил на конференции, что сегодня каждые 2 дня создается столько же данных, сколько было создано человечеством с начала цивилизации до 2003 г.) +# - 2011 год(В отчете McKinsey говорится, что к 2018 г. США столкнется с нехваткой от 140 ООО до 190 ООО профессиональных специалистов по обработке данных, а такие проблемы, как конфиденциальность, безопасность и интеллектуальная собственность, должны быть решены до того, как большие данные раскроют весь свой потенциал.) +# - 2012 год(публикация статьи «Специалист по обработке данных:самая сексуальная работа XXI века» в журнале Harvard Business Review.) +# - 2014 год(Наблюдается рост мобильных устройств - для доступа к цифровым данным мобильныеустройства используются чаще, чем офисные и домашние компьютеры.88 % руководителей предприятий, опрошенных GE совместно с Accenture, считают,что аналитика больших данных является основным приоритетом для их бизнеса.) +# +# +# + +# ## Настоящее и будущее Data Science +# +# Data Science идет по нескольким направлениям: +# +# - Искусственный интеллект (ИИ) - это сфера, в которой основное внимание уделяется созданию интеллектуальных машин, способных работать и принимать +# решения как человек. +# +# ![image.png](attachment:image.png) +# +# - Машинное обучение - это инструмент для извлечения знаний из данных. В машинном обучении модели могут обучаться на данных самостоятельно или +# поэтапно: обучение с учителем, т. е. на данных, подготовленных человеком, или обучение без учителя, в котором работа ведется над хаотичными и неорганизованными данными. +# - Глубокое обучение - это создание многослойных нейронных сетей в областях, где требуется более продвинутый или быстрый анализ, а традиционное машинное обучение не справляется. Под глубиной понимается наличие более одного скрытого слоя нейронов в сети, которые проводят математические вычисления. +# - Большие данные - это работа с огромными объемами часто неструктурированных данных. Специфика этой сферы - инструменты и системы, способные +# выдерживать высокие нагрузки. +# +# +# + +# ## Чем занимается специалист по Data Science? +# +# «Специалист по Data Science - это человек, который разбирается в статистике лучше любого программиста и программирует лучше любого статистика» (Джош Уиллс). +# +# Специалист по Data Science анализирует бизнес-данные, извлекая из них важную информацию.Cпециалист по анализу данных решает бизнесзадачи +# с помощью следующих шагов: +# +# - задает правильные вопросы, чтобы понять проблему; +# - собирает данные из нескольких источников - корпоративные данные, общедоступные данные и т. д.; +# - обрабатывает сырые данные и преобразует их в формат, подходящий для анализа; +# - загружает данные в аналитическую систему - алгоритм машинного обучения или статистическая модель; +# - подготавливает результаты и идеи, которые можно изложить заинтересованным сторонам. +# +# Всё это позволяет решить немало проблем, некоторые из них приведены далее: +# +# - обнаружение мошенничества и выявление аномалий, например изменений схемы снятия или расходования средств с кредитной карты клиента; +# - целевой и персонализированный маркетинг - персональные рассылки по электронной почте, системы рекомендаций на сайтах магазинов; +# - метрические прогнозы - показатели эффективности, качества рекламных кампаний и других мероприятий; +# - оценка принятия решений - обработка больших объемов данных и помощь в принятии решения, например о выдаче кредита на основе кредитных оценок; +# - прогнозирующее моделирование - прогнозирование столкновения метеорита с землей на основе астрономических данных. +# Это лишь малая часть тем, которыми занимается специалист по данным. + +# ## Предпосылки для Data Science +# +# ### Программирование +# - Для успешного выполнения проекта по Data Science требуются определенные навыки программирования. Наиболее распространенными языками программирования являются Python и R. +# +# ![image.png](attachment:image.png) +# +# ### Статистика +# - Статистика лежит в основе Data Science. Правильная обработка статистикиможет помочь вам извлечь больше информации и получить более значимые +# результаты. +# +# ### Базы данных +# - Будучи специалистом по данным, вам необходимо понимать, как работают базы данных, как ими управлять и как извлекать из них данные. +# +# ### Моделирование +# - Математические модели позволяют выполнять вычисления и прогнозы на основе того, что вы уже знаете о данных. Моделирование также относится к машинному обучению и включает определение того, какой алгоритм больше подходит для решения данной проблемы и как обучать эти модели. +# +# +# +# + +# ## Профессии в области Data Science +# - специалист по данным; +# - дата-инженер; +# - аналитик данных; +# - статистик; +# - архитектор данных; +# - администратор данных; +# - бизнес-аналитик; +# - менеджер данных/аналитики. +# ### Специалист по данным +# - Роль: специалист по данным - это профессионал, который манипулируетогромными объемами данных для создания серьезных бизнес-концепций, используя +# различные инструменты, методы, методологии, алгоритмы и т. д. +# - Языки: R, SAS, Python, SQL, Hive, МА ТLАВ, Pig, Spark. +# ### Дата-инженер +# - Роль: его роль заключается в работе с большими объемами данных. Он разрабатывает,конструирует, тестирует и поддерживает крупномасштабные системы +# обработки и базы данных. +# - Языки: SQL, Hive, R, SAS, МА TLAB, Python, Java, Ruby, С++ и Perl. +# ### Аналитик данных +# - Роль: аналитик данных отвечает за сбор огромных объемов данных. Этот специалист будет искать в данных отношения, закономерности и тенденции. Позжеон составляет убедительную отчетность и визуализацию для анализа данных,чтобы принять наиболее жизнеспособные бизнес-решения. +# - Языки: R, Python, НТМL, JS, С, С++, SQL. +# ### Статистик +# - Роль: статистик собирает, анализирует и обрабатывает качественные и количественные данные, используя статистические теории и методы. +# - Языки: SQL, R, МАТLАВ, ТаЫеаu, Python, Perl, Spark и Hive +# ### Администратор данных +# - Роль: администратор данных должен обеспечить доступ к базе данных для всех пользователей. Он также следит за тем, чтобы программа работала правильно и была защищена от взлома. +# - Языки : Ruby on Rails, SQL, Java, С # и Python. +# ### Бизнес-аналитик +# - Роль: этот специалист занимается улучшением бизнес-процессов. Он является связующим звеном между руководством и IТ-отделом. +# - Языки: SQL, ТаЫеаu, Power 81 и Python. + +# ## От Data Science к программированию +# +# - Существуют новейшие и очень интересные технологии, основанные на Data Science, - это автомобили с автоматическим управлением, персональные цифровые помощники (Alexa, Google Assistant, Siri и т. д.), динамичные сервисы пробок и навигации на цифровых картах и, конечно же, персонализация опыта покупок. + +# ### Компьютерный алгоритм +# - Чтобы заставить компьютер сделать что-либо нужно написать инструкции, затем компьютер запускает программу и выполняет её шаг за шагом чтобы сделать задачу. Данные инструкции называются алгоритмом. +# #### Примеры алгоритмов +# - Напишем алгоритм приготовления чая. Ингредиенты: вода, сахар, молоко и чайные листья на две чашки чая. +# - Шаг 1 . Начало. +# - Шаг 2: Возьмите ковшик и налейте в него один стакан воды. +# - Шаг 3: Зажгите конфорку и поставьте на нее ковшик. +# - Шаг 4: Доведите воду до кипения. +# - Шаг 5: Добавьте в кипящую воду две столовые ложки сахара и две столовые ложки чайных листьев. +# - Шаг 6: Добавьте в кипящую смесь одну чашку молока. +# - Шаг 7: Варите содержимое в течение одной минуты. +# - Шаг 8: Выключите конфорку. +# - Шаг 9: Процедите чай через сито. +# - Шаг 1О: Разлейте чай по чашкам и подавайте. +# - Шаг 11 : Конец. +# +# #### Пример вычислител ьного алгоритма +# - Напишите алгоритм того, как сложить 2 + 2 и получить 4 в качестве результата. +# - Шаг 1 : Начало. +# - Шаг 2: Введите 2 + 2. +# - Шаг 3: Нажмите клавишу . +# - Шаг 4: Конец. +# - В целом алгоритмы состоят из 3 видов операторов, которые могут присутствовать вразличных комбинациях: +# 1. Последовательные операторы. +# 2. Условные операторы. +# 3. Циклы или итерации. +# +# #### Последовательные операторы +# - Эти операторы выполняются один за другим, последовательно. +# - Приведенные ранее примеры, как заваривание чая, так и вычисление 2 + 2, являются примерами последовательных операторов. Рассмотрим еще пару примеров. +# - Пример. Как рассчитать возраст человека по году его рождения. +# - Шаг 1 : Начало. +# - Шаг 2: Возьмите год рождения человека и сохраните это число как УОВ. +# - Шаг 3: Возьмите текущий год и сохраните его как СУ. +# - Шаг 4: Вычтите УОВ из СУ и сохраните как Age. +# - Шаг 5: Выведите значение Age. +# - Шаг 6: Конец. +# +# #### Условные операторы +# - В таких программах некоторая часть программы выполняется в зависимости от определенного условия. Если условие верное, компьютер выполняет одну часть программы, а если условие неверное, то выполняется другая часть программы. +# - Пример. Напишите алгоритм, который проверяет, заболел ли человек. Считаем, что человек заболел, если температура его тела выше 37 °С. +# - Шаг 1 : Начало. +# - Шаг 2: Измерьте температуру и сохраните ее в ТЕМР. +# - Шаг 3: Проверьте значение ТЕМР. Если оно превышает 37 градусов, переходите к шагу 4, в противном случае переходите к шагу 5. +# - Шаг 4: Выведите «Пациент болеет» и переходите к шагу 6. +# - Шаг 5: Выведите «Пациент здоров». +# - Шаг 6: Конец. +# +# #### Цикл или итерации +# - В некоторых программах определенный набор действий нужно выполнять снова и снова в зависимости от некоторого условия. Эти повторяющиеся действия называются итерациями. Итерация выполняется с использованием одного или нескольких операторов цикла, поэтому программы такого типа называются циклическими или повторяющимися. +# - Пример. Вывести на экран все числа от 1 до 1О. +# - Шаг 1 : Начало. +# - Шаг 2: Сохраните значение 1 в i. +# - Шаг 3: Проверьте, выполняется ли условие i <= 1О. Если да, то переходите к шагу 4. Если нет,переходите к шагу 7. +# - Шаг 4: Выведите значение i на экран. +# - Шаг 5: Увеличьте значение i на 1 . +# - Шаг 6: Переходите к шагу 3. +# - Шаг 7: Конец. +# - В этом примере шаги с 3-ro по 5-й повторяются до тех пор, пока условие шага 3 выполняется. Как только условие станет неверным, цикл завершится. +# +# #### Блок-схемы +# - Алгоритмы можно изображать в графической форме с использованием определенных обозначений. Полученное изображение называется блок-схемой. +# +# ![image.png](attachment:image.png) + +# ### Что такое язык программирования? +# - Если мы хотим дать компьютеру какие-то указания, нужен язык программирования.Разных языков программирования существует очень много. Как и у разговорных языков, у всех языков программирования есть свои правила (синтаксис) и значения (семантика). +# - У всех языков программирования есть свои сильные и слабые стороны. Некоторые из них идеально подходят для создания веб-сайтов, другие - для мобильных приложений, а третьи предназначены для выполнения сложных математических расчетов. +# - Независимо от того, какой язык программирования вы выбрали, компьютер все равно его не понимает. Компьютер понимает совершенно другой язык, который называется машинным языком. Но нам бьmо бы сложно писать программ ы напрямую на машинном языке, потому что он очень сложен и состоит в основном из последовательностей чисел. Именно поэтому приведенные выше языки программирования называются языками высокого уровня, т. к. они более похожи на естественные человеческие языки. + +# ### Что такое исходный код? +# - Исходный код - это то, что пишуг программисты на всех языках программирования.Это те самые указания, которые мы даем компьютеру, написанные неформатированным текстом. + +# ### Как запустить исходны й код? +# Существуют три основных способа перевода исходного кода в машинный код: +# - компиляция; +# - интерпретация; +# - сочетание этих двух способов. +# +# #### Компилятор +# - Компилятор - это программа, преобразующая исходный код в машинный. +# +# #### Интерпретатор +# - интерпретатор - это компьютерная программа, которая непосредственно выполняет инструкции, написанные на языке программирования, без предварительной компиляции в программу на машинном языке. + +# ### Сравнение компилятора и интерпретатора +# Основные различия между компиляторами и интерпретаторами: +# - И компиляторы, и интерпретаторы преобразуют исходный код (текстовые файлы) в машинный язык. Основное их отличие состоит в том, что компилятор генерирует автономную программу, написанную на машинном коде, а система интерпретатора выполняет действия, описанные программой высокого уровня. +# - После компиляции программы ее исходный код для запуска больше не требуется. У интерпретируемых программ исходный код требуется для запуска программы каждый раз. +# - Обычно интерпретируемые программы работают медленнее, чем компилируемые. +# + +# ### Что такое интегрированная среда разработки (IDE)? +# +# - Для решения специфичных задач всегда существует специальное программное обеспечение. Например, когда нужно работать с данными, таблицами и расчетами, мы используем программы для работы с электронными таблицами (например, Microsoft Ехсе), а если нужна презентация, используем PowerPoint. Для создания или открытия текстовых документов используются текстовые редакторы. Нетрудно предположить, что для написания компьютерных программ существуют интегрированные среды разработки или IDE (lntegrated Development Environrnent). В этих программах есть специальные инструменты, необходимые для написания, отладки и ком.пиляции кода. +# - Поскольку мы изучаем Python, мы будем использовать IDE, поддерживающие язык Python. Дефицита IDE для Python не наблюдается - можно использовать любую. Но я рекомендую начать со стандартного программного обеспечения, т. к. оно проще в установке и использовании. Скорее всего, вы так и будете использовать эти программы дальше, поскольку они весьма эффективны. + +# ### Spyder IDE +# - Spyder IDE (Scientific Python Development Environment) - это бесплатная научная среда разработки на Python, которая входит в состав дистрибутива Anaconda (пакетное программное обеспечение для Python). В этой IDE есть функции редактирования, проверки, отладки и интерактивного тестирования. + +# ## Упражнения +# +# ### Ответьте на вопросы +# 1) Какие предметные области входят в Data Science? Что между ними общего и в чем различие? +# - Искусственный интеллект, машинное обучение и глубокое обучение. Для всех областей небходимы данные, на которых они будут предобучатся, а разница в том, что каждая область использует разные математические методы для решения задач. +# 2) Как вы понимаете термин «алгоритм»? Как алгоритмы связаны с блок-схемами? +# - Алгоритм - это некие последовательные инструкции которые мы прописываем в коде для того чтобы компьютер мог считать их и выполнить. А блок- схемы это тот же самый алгоритм только представленный визуально. +# 3) Какую программу можно назвать хорошей? Запишите все характеристики, какие удастся придумать. +# - Надежность, функциональность, производительность, эффективность, поддержка, удобство использования, масштабируемость,читаемость. +# 4) Какой язык понимает компьютер? +# - Машинный код +# 5) Чем языки программирования отличаются от языков, на которых мы говорим? +# - Языки програмирования интерпретируются в машинный код, а человеческий язык нет. +# +# #### Правда или ложь +# 1) Машинное обучение - это инструмент для извлечения знаний из данных. +# - Правда +# 2) Глубокое обучение - это то же самое, что машинное обучение. +# - Ложь +# 3) Все инженеры-программисты также могут считаться специалистами по данным. +# - Правда +# 4) Статистика - важный инструмент для специалистов по данным. +# - Правда +# 5) Компьютер может принимать решения, выходящие за рамки данных ему инструкций, подстраиваясь под изменения среды. +# - Ложь +# 6) Компьютеры понимают языки программирования «как есть». +# - Ложь +# 7) Некоторые языки программирования компилируются, некоторые интерпретируются, а некоторые используют и то и другое. +# - Правда +# 8) Все программы выполняются последовательно. +# - Ложь +# 9) В IDE есть встроенный текстовый редактор. +# - Правда +# 10) Компиляторы и интерпретаторы - это такие механизмы, наподобие привода для компакт-дисков. +# - Ложь +# +# #### Практические задания +# 1) Напишите алгоритм для расчета простых процентов от некоторой суммы. +# - Начало программы. +# - Ввести сумму P. +# - Ввести годовую процентную ставку r (в процентах). +# - Ввести срок t (в годах). +# - Перевести ставку в долю: r = r / 100. +# - Вычислить сумму процентов: I = P * r * t. +# - Вывести I. +# - Конец программы. +# 2) Напишите алгоритм для вычисления площади прямоугольника. +# - Начало программы. +# - Ввести длину a. +# - Ввести ширину b. +# - Вычислить площадь: S = a * b. +# - Вывести S. +# - Конец программы. +# 3) Напишите алгоритм вычисления периметра круга. +# - Начало программы. +# - Ввести радиус r. +# - Задать π = 3.14. +# - Вычислить периметр: P = 2 * π * r. +# - Вывести P. +# - Конец программы. +# 4) Напишите алгоритм, который находит все простые числа меньше 100. +# - Начало программы. +# - Для каждого числа n от 2 до 99: +# - Предположить, что n — простое. +# - Проверить, делится ли n на любое число k от 2 до √n: +# - Если делится хотя бы на одно, пометить n как составное. +# - Если n осталось помеченным как простое, вывести n. +# - Конец программы. +# 5) Напишите алгоритм превращения предложения, написанного в верхнем регистре, в обычный для предложений регистр. +# - Начало программы. +# - Ввести строку text. +# - Преобразовать text в нижний регистр. +# - Сделать первую букву text заглавной. +# - Для каждого символа, который следует сразу после «. », «! » или «? »: +# - Сделать этот символ заглавным. +# - Вывести преобразованный текст. +# - Конец программы. +# 6) Составьте блок-схему приготовления льда из кипяченой воды с помощью холодильника. +# +# ![image.png](attachment:image.png) +# +# 7) Составьте блок-схему для нахождения суммы всех четных чисел меньше ста. +# +# ![image-2.png](attachment:image-2.png) +# +# 8) Составьте блок-схему для вычисления квадрата всех нечетных чисел от 1 до 15 включительно. +# +# ![image-3.png](attachment:image-3.png) +# +# 9) Составьте блок-схему вывода таблицы умножения на 3. +# +# ![image-4.png](attachment:image-4.png) +# +# 10) Составьте блок-схему для расчета сложных процентов (с капитализацией). +# +# ![image-5.png](attachment:image-5.png) + +# ### Изучите самостоятельно +# 1) Что думают ученые о будущем Data Science? Изучите материалы на эту тему и поделитесь ими с друзьями. +# - Будущее Data Science — это не смерть профессии, а ее взросление. Исчезнет порог входа для простых задач, но вырастет спрос на высококвалифицированных специалистов, которые являются гибридами: ученый-инженер-этик-предметник. Это будет менее "магия" и более "наука" — сложная, но невероятно мощная. +# +# 2) Составьте список разных IDE для языка Python. Узнайте, чем они похожи и чем отличаются. +# - PyCharm, VS Code, Jupyter, Spyder. Дают подсветку, автодополнение и отладку; отличаются лицензией, лёгкостью и встроенными инструментами (научные пакеты, фронтенд-расширения) +# +# 3) Составьте список всех компилируемых и интерпретируемых языков. Найдите ситуации, в которых каждый из них будет полезнее в использовании, чем остальные. +# - Компилируемые: C, C++, Rust, Go -> высокая скорость, контроль памяти, системы и встраиваемые. +# - Интерпретируемые: Python, Ruby, JavaScript -> быстрая разработка, скрипты, веб, анализ данных. +# +# 4) Создайте алгоритмы для решения некоторых распространенных задач, с которыми вы сталкиваетесь в повседневной жизни. Составьте для них блок-схемы. +# - ![image.png](attachment:image.png) +# +# 5) Как вы думаете, может ли изучение компьютерного программирования помочь автоматизировать какие-нибудь повторяющиеся рутинные задачи? Подготовьте список таких задач и попробуйте автоматизировать их по мере изучения этой книги. +# - Да, например создание своего чат бота или помошника сможет автоматизировать множества задачь, от написания расисаний, отслеживания их или напоминия. Возможность обучени модели позволит ей в дальнейшем предсказывать пожелания в запросах и выстраивания оптимального ритма жизни что скажется на улучшении уровня жизни. + +# diff --git a/python/made-easy/introduction_to_python_2.ipynb b/python/made-easy/introduction_to_python_2.ipynb new file mode 100644 index 00000000..4452a2da --- /dev/null +++ b/python/made-easy/introduction_to_python_2.ipynb @@ -0,0 +1,296 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "id": "1bdcec9d", + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"Введение в Python.\"\"\"" + ] + }, + { + "cell_type": "markdown", + "id": "cb6be717", + "metadata": {}, + "source": [ + "### Что такое Python?\n", + "- Python - это бесплатный интерпретируемый высокоуровневый язык программирования общего назначения с открытым исходным кодом.\n", + "- Python был создан Гвидо ван Россумом и впервые выпущен в 1 99 1 r. Он поддерживает несколько парадигм программирования, включая структурное ( особенно процедурное) объектно-ориентированное и функциональное программирование.\n", + "- Элегантный синтаксис и динамическая типизация Python вместе с его интерпретируемостью делают его идеальным языком для написания сценариев и быстрой разработки приложений во многих областях и на множестве платформ.\n", + "\n", + "### Почему и менно Python?\n", + "- Язык должен быть простым в изучении и использовании, а также популярным среди программистов.\n", + "- Что касается популярности, то самыми популярными языками программирования для специалистов по данным являются:\n", + "- Python\n", + "- С++\n", + "- R \n", + "- Java\n", + "- SQL \n", + "- Matlab\n", + "\n", + "Python удовлетворяет всем следующим критериям:\n", + "- Это один из самых популярных языков программирования, прочно вошедший в индустрию разработки программного обеспечения.\n", + "- Занимает первое место среди языков-аналогов согласно рейтингам из открытых источников или статей по языкам программирования.\n", + "- Стабильно популярный, а еще лучше с растущей популярностью.\n", + "- У языка есть большой набор библиотек, инструменты, фреймворки и большое сообщество, которое вносит свой вклад в развитие языка.\n", + "- Язык хорошо востребован на рынке труда и позволяет получать хорошую зарплату.\n", + "\n", + "- У Python открытый исходный код, и он широко используется. Модули и библиотеки находятся в свободном доступе, и их число растет с каждым днем.\n", + "\n", + "### Появление Python\n", + "- Язык Python был придуман в конце 1 980-х rr. Гвидо ван Россумом, сотрудником Centrum Wiskunde & Infonnatica (CWI) в Нидерландах, как преемник языка АВС.\n", + "- В январе 2019 г. активные разработчики ядра Python избрали Бретга Кэннона, Ника Коглана, Барри Варшаву, Кэрол Виллинг и Гвидо ван Россума в «Руководящий совет», который возглавил проект.\n", + "- 16 октября 2000 г. был выпущен Python 2.0, в котором появилось множество новых базовых функций, включая сборщик мусора с обнаружением циклических ссылок и поддержку Unicode.\n", + "- 3 декабря 2008 г. бьш выпущен Python 3.0.В релиз Python 3 в числе прочего входила утилита 2to3, которая автоматизировала (по крайней мере\n", + "частично) перевод кода из Python 2 в Python 3.\n", + "- Язык назван в честь шоу на канале ВВС «Летающий цирк Монти Пайтона»\n", + "\n", + "### Python и другие языки программирования\n", + "- Python прост в использовании, но при этом это настоящий язык программирования, в котором есть гораздо более мощный инструментарий для создания больших программ, чем могут предложить shеll-скрипты или Ьаt-файлы.\n", + "- в Python также реализовано больше проверок ошибок, чем в С, и, как в любом языке высокого уровня, в нем есть встроенные высокоуровневые типы данных, такие как гибкие массивы и словари.\n", + "- Python позволяет разделять программу на модули, которые можно повторно использовать в других программах на Python. В нем есть большой встроенный набор стандартных модулей, которые можно использовать в качестве основы для своих программ или в качестве примеров для начала обучения программированию на Python. В этих модулях реализован файловый ввод-вывод, системные вызовы, сокеты, а также инструменты для создания графических пользовательских интерфейсов, такие как Tkinter.\n", + "- Python - это интерпретируемый язык, позволяющий значительно сэкономить время при разработке программы, поскольку компиляция и связывание в нем не выполняются.Интерпретатор можно использовать в интерактивном режиме.\n", + "- Программы, написанные на Python, обычно намного короче таких же программ на С, С++ или Java по нескольким причинам.\n", + " - Типы данных высокого уровня позволяют записывать сложные операции в одну строку.\n", + " - Группировка операторов выполняется с помощью отступов, а не с помощью скобок в начале и конце блока.\n", + " - Объявление переменных или аргументов не требуется.\n", + "- Python является расширяемым.\n", + "\n", + "### Философия Python\n", + "- Основная философия языка звучит как:\n", + " - Красивое лучше, чем уродливое.\n", + " - Явное лучше, чем неявное.\n", + " - Простое лучше, чем сложное.\n", + " - Сложное лучше, чем запутанное.\n", + " - Читаемость имеет значение.\n", + "\n", + "### Преимущества Python по сравнению с другими языками\n", + "- Простота\n", + "- Легкость в изучении\n", + "- Свободны й и открытый исходный код\n", + "- Высокоуровневость\n", + "- Портативность\n", + "- Интерпретируемость\n", + "\n", + "### Интерпретаторы Python\n", + "- интерпретатор - это разновидность компьютерной программы, которая непосредственно выполняет инструкции, написанные на каком-либо языке программирования или языке сценариев. Под непосредственным выполнением подразумевается, что предварительная компиляция кода в программу на машинном языке не требуется. Давайте кратко рассмотрим 7 самых популярных интерпретаторов Python.\n", + "\n", + "#### IPython\n", + "- IPython - это альтернативный интерпретатор Python. Это интерактивная оболочка, которая используется для вычислений на Python. В ней гораздо больше полезных функций по сравнению с интерпретатором Python, используемым по умолчанию. В комплекте с IPython идет редактор Jupyter Notebook - один из наиболее часто используемых начинающими программистами инструментов.\n", + "\n", + "#### CPython\n", + "- Это стандартная и наиболее широко используемая реализация языка программирования Python. Написанный на С и Python, интерпретатор CPython содержит много внешних функций С и связан с другими языками программирования. CPython можно в какой-то степени считать компилятором, поскольку перед интерпретацией он преобразует код Python в байт-код. В нем используется GIL (глобальная блокировка интерпретатора), которая ограничивает возможности интерпретатора, поскольку она отключает параллельные потоки Python в рамках одного процесса.\n", + "\n", + "#### lronPython\n", + "- IronPython - это реализация языка программирования Python для платформы .NET, в которой используются библиотеки Python и .NET. Этот интерпретатор может предоставлять код Python другим языкам, относящимся к платформе .NET.\n", + "\n", + "#### Jython\n", + "Ранее известная как JPython, реализация Jython работает на платформе Java. Это сочетание Java и Python преобразует ;\n", + "код Python в байт-код Java и, следовательно, позволяет запускать код Python на любой машине, на которой установлена JVM. Jython обеспечивает поддержку как статической, так и динамической компиляции. Важной особенностью этого интерпретатора Python является то, что он позволяет импортировать, а также использовать любые классы Java так, словно это модуль Python.\n", + "\n", + "#### РуРу\n", + "- РуРу - это быстрая и совместимая альтернативная реализация языка программирования Python. Этот интерпретатор Python реализован в RPython, который представляет собой ограниченное статически типизированное подмножество языка программирования Python.\n", + "\n", + "#### Python Net\n", + "- PythonNet позволяет выполнить почти бесшовную интеграцию Python с .NET CLR. Подход этого интерпретатора можно считать противоположным тому, которому следует lronPython. При использовании вместе с Mono, PythonNet позволяет встроенным в операционные системы установкам Python (кроме\n", + "Windows) работать в среде .NET. PythonNet можно использовать совместно с IronPython без каких-либо проблем\n", + "\n", + "#### Stackless Python\n", + "- CPython и другие популярные интерпретаторы Python для управления стеком используют язык С. Но к интерпретатору Stackless Python это не относится. Хотя в Stackless Python используется стек С, между вызовами функций он очищается. Следовательно, интерпретатор Python в работе со стеком не зависит от вызова С. Как и CPython, Stackless Python написан с использованием С и Python. Помимо поддержки потоков, у Stackless Python есть поддержка каналов связи, сопрограмм, предварительно скомпилированных двоичных файлов, циклического планирования, сериализации задач и тасклетов. Возможно, самая важная особенность Stackless Python - это наличие микропотоков. Эта возможность помогает избежать значительной части накладных: расходов, связанных с обычными потоками операционной системы.\n", + "\n", + "#### Объектная ориенти рованность\n", + "- Python поддерживает процедурно-ориентированное программирование, а также объектно-ориентированное программирование. В процедурно-ориентированных: языках программа состоит из процедур или функций, в которых заключены многократно используемые части программы. В объектно-ориентированных языках программа построена на объектах, которые включают в себе данные и функциональность. В Python очень мощный, но упрощенный стиль объектно-ориентированного программирования, особенно по сравнению с такими крупными языками, как С++ или Java.\n", + "\n", + "#### Расширяемость\n", + "- Если в коде есть критический фрагмент, от которого зависит быстродействие, или вы хотите, чтобы какой-то фрагмент алгоритма бьm скрыт, вы можете написать эту часть программы на С или С++, а затем использовать ее из программы на Python. Python легко расширяется с помощью кода C/C++/Java и легко встраивается в приложения.\n", + "\n", + "#### Встраиваемость\n", + "- Код Python можно встраивать в программы на С/С++, что позволяет использовать возможности скриптов.\n", + "\n", + "#### Внушительные библиотеки\n", + "- Стандартная библиотека Python, которую обычно упоминают как одну из сильнейших сторон этого языка, содержит инструменты, подходящие для огромного множества задач.\n", + "- По состоянию на март 2018 г. официальный репозиторий для стороннего программного обеспечения Python под названием PyPI (Python Package lndex) содержал более 130 ООО пакетов с широким набором функций, в том числе:\n", + " - графические пользовательские интерфейсы;\n", + " - веб-фреймворки;\n", + " - мультимедиа;\n", + " - базы данных;\n", + " - сети;\n", + " - фреймворки тестирования;\n", + " - автоматизация;\n", + " - парсинг веб-страниц;\n", + " - документация;\n", + " - системное администрирование;\n", + " - научные вычисления;\n", + " - обработка текста;\n", + " - обработка изображений.\n", + "\n", + "### Python для начинающих\n", + "- Python очень простой и последовательный синтаксис и богатая стандартная библиотека, и, что наиболее важно, использование Python в начальном\n", + "курсе программирования позволяет студентам сосредоточиться на важных навыках программирования, таких как декомпозиция задач и проектирование типов данных. Используя Python, студенты могут быстро познакомиться с базовыми понятиями, такими как циклы и функции.\n", + "\n", + "### Версии Python\n", + "- Вышедший в конце 2000 г. Python 2 характеризовался более прозрачным и вместе с тем полным процессом разработки языка, чем в более ранних версиях Python.\n", + "- После выпуска Python 3 .0 в 2008 г., 3 июля 20 1 0 г. вышел Python 2.7, который планировался как последний выпуск в линейке версий 2.х. Целью Python 2. 7 бьmо облегчить пользователям Python 2.х переход на Python 3 и предоставить совместимость между этими версиями.\n", + "- Python 3 считается будущим Python, и именно эта версия языка в настоящее время находится в разработке. Python 3 бьm выпущен в конце 2008 г. после масштабной переработки, и в нем были устранены и исправлены внутренние недостатки, присущие более ранним версиям языка.\n", + "\n", + "### Ключевые отличия версий\n", + "- У Python 2. 7 и Python 3 немало схожих возможностей, но н е следует рассматривать эти языки как полностью взаимозаменяемые. Конечно, можно писать хороший код и полезные программы в любой версии, но важно помнить о различиях в синтаксисе и обработке кода.\n", + "\n", + "### Как установить и использовать Python\n", + "-Последнюю версию автономного дистрибутива Python можно загрузить по следующей ссылке: https:// www. python.org/downloads\n", + "\n", + "### Дистрибути в Anaconda\n", + "- Дистрибутив Anaconda - это самый простой и наиболее часто используемый способ установки Python и других необходимых пакетов. Он находится в свободном доступе и прост в установке.\n", + "\n", + "### Почему именно Anaconda?\n", + "- В дистрибутиве Anaconda дополнительно реализовано много полезных функциональностей, которые упрощают работу начинающим программистам.\n", + " - Возможность выбора и установки нужной вам версии Python.\n", + " - Возможность установки/обновления пакетов совершенно независимо от системных библиотек или прав администратора.\n", + " - Инструмент Conda устанавливает бинарные пакеты и не требует компиляцииресурсов, таких как pip, что тоже удобно, если вы ограничены в правах установкинеобходимых библиотек.\n", + " - Частичное избавление от головной боли на предмет того, какая версия пакета Х совместима с какой версией пакета У, когда оба они требуются для установки пакета Z.\n", + " - Возможность загрузки либо полной версии, с NumPy, Scipy, PyQt, Spyder IDEи т. д., либо в минимальной комплектации (miniconda), где вы можете выбрать только нужные компоненты.\n", + " - Отсутствие риска испортить системные библиотеки.\n", + "\n", + "\n", + "### Установка Anaconda в Windows\n", + "- Скачайте установочный файл Anaconda(https://www.anaconda.com/download/#windows ).\n", + "- Ниже приведены ссылки на документацию по установке Anaconda для различных операционных систем:\n", + " - https://docs.anaconda.com/anaconda/install/windows/;\n", + " - https://docs.anaconda.com/anaconda/install/mac-os/;\n", + " - https://docs.anaconda.com/anaconda/install/Iinux/.\n", + "\n", + "### Запуск Python через командную строку\n", + "- Командная строка - это приложение, которое позволяет запускать команды для просмотра папок и файлов, выполнения скриптов и, конечно, для работы с Python.\n", + "- Консоль (она же терминал или командная строка) - это текстовый способ взаимодействия с вашей ОС, точно такой же, по существу, как рабочий стол и мышь, которые тоже являются способом взаимодействия с системой.\n", + "\n", + "### Приложения Anaconda\n", + "- 3 оcновных программ, которые используются чаще всего:\n", + " - Консоль IPython;\n", + " - Spyder;\n", + " - Jupyter Norebook.\n", + "\n", + "### Консоль IPython Qt\n", + "- Консоль Qt - это очень легкое приложение, во многом похожее на командную строку, но с дополнительными функциями, которые можно реализовать только в графическом интерфейсе, такими как встраивание рисунков, правильное многострочное редактирование с подсветкой синтаксиса, подсказки и многое другое.\n", + "\n", + "### Spyder IDE\n", + "- Spyder представляет собой бесплатную интегрированную среду разработки (IDE), которая входит в состав Anaconda. В ней имеются функции редактирования, интерактивного тестирования, отладки и самоанализа.\n", + "\n", + "### Jupyter Notebook\n", + "\n", + "#### Приложение Jupyter Notebook\n", + "- Это редактор расширяет консольный подход к интерактивным вычислениям в качественно новом направлении и сконструирован как веб-приложение, подходящее для записи всего вычислительного процесса: разработки, документирования и выполнения кода, а также передачи результатов. Jupyter Notebook объединяет в себе два компонента:\n", + " - веб-приложение - инструмент на основе браузера, предназначенный для интерактивного создания документов, сочетающий в себе пояснительный текст, математические вычисления и мультимедийный вывод результатов;\n", + " - документы Notebook, содержащие все видимое в веб-браузере, включая входные и выходные данные вычислений, пояснительный текст, математические данные, изображения и мультимедийные представления объектов.\n", + "\n", + "#### Основные возможности веб-приложения\n", + "- Jupyter Notebook позволяет работать с кодом в редакторе, встроенном в окно браузера, с автоматическим выделением синтаксиса цветом, отступами, заполнением табуляцией и анализом.\n", + "\n", + "#### Документы Notebook\n", + "- Документы Notebook содержат входные и выходные данные интерактивного сеанса, а также дополнительный текст, который добавлен к коду, но не предназначен для выполнения. Эти документы являются внутренними файлами JSON и сохраняются с расширением ipynb. Поскольку JSON - это неформатированный текст, эти файлы также можно включать в контроль версий и делиться ими с коллегами. Документы Notebook можно экспортировать в некоторые статические форматы, например, НТМL (для публикации в блоrах), Restructured Text, LaTeX, PDF. Кроме того, любой документ Notebook формата ipynb, доступный по публичному URL-aдpecy, можно опубликовать через Jupyter Notebook Viewer (nbviewer).\n", + "\n", + "### Упражнения\n", + "\n", + "#### Ответьте на вопросы\n", + "\n", + "1) Python - это программное обеспечение с открытым исходным кодом. Это то же самое, что и бесплатное ПО?\n", + "- нет, потому у бесплатного ПО может быть закрытый исходный код, а также всё зависит от лицензии\n", + "\n", + "2) У всех ли бесплатных программ открытый исходный код? А если нет, то в чем разница?\n", + "- нет, т.к. разработчики бесплатного ПО могут не захотеть делиться исходным кодом\n", + "\n", + "3) Python поддерживает динамическую типизацию. Что это такое?\n", + "- интерпретатор автоматически определяет, какого типа значение присваивается переменной. Предварительно не нужно объявлять тип переменной.\n", + "\n", + "4) Назовите 5 самых популярных языков программирования для специалистов по анализу данных.\n", + "- python, R, SQL, C++, java, matlab\n", + "\n", + "5) В чем заключается преимущество Python по сравнению с языком С?\n", + "- портабельность и кроссплатформенность, простота, интерпретируемость, автоматическое управление памятью\n", + "\n", + "6) Python портативен. Что в этом контексте означает «портативность»?\n", + "- код работает на разных устройствах и ОС\n", + "\n", + "7) В чем разница между «расширяемым» и «встраиваемым» языком?\n", + "- Расширяемый язык позволяет писать модули на других языках и подключать их к python для улучшения производительности или доступа к низкоуровневым функциям (например, ручное управление памятью на плюсах).\n", + "- Встраиваемый язык можно встроить в приложение, например, на C/C++. Т.е. интерпретатор можно подключить к коду, работающему на других языках.\n", + "\n", + "8) В чем смысл IDE? Чем она отличается от командной строки?\n", + "- подсветка синтаксиса, дополнительные функции, встроенный редактор кода, терминал, файловая система и многое другое\n", + "\n", + "9) Как открыть существующий документ Jupyter Notebook? Чем эта процедура отличается от открытия РDF-файла или текстового файла?\n", + "- jupyter notebook name.ipynb. Тем, что ipynb - не статический файл, а контейнер для кода и вывода, который открывается через веб-сервер Jupyter в браузере. PDF и текстовый файл открываются в просмотрщике/редакторе как статический документ, без возможности интерактивно выполнять вычисления и изменять содержимое ячеек.\n", + "\n", + "10) В чем разница между «ячейками разметки Markdown» и «ячейками кода» в Jupyter Notebook? Для чего они нужны?\n", + "- Markdown ячейки используются для текста, который имеет возможность к форматированию. Обычно там поясняется написанный код или же математическое обоснование к коду.\n", + "\n", + "#### Правда или ложь\n", + "\n", + "1) Язык программирования Python был назван в честь змеи питон.\n", + "- ложь\n", + "\n", + "2) Python - это высокоуровневый язык общего назначения.\n", + "- Правда \n", + "\n", + "3) Python компилируется и не интерпретируется.\n", + "- ложь\n", + "\n", + "4) В Python команда два + два вернет Четыре.\n", + "- Правда\n", + "\n", + "5) Консоль IPython аналогична окну командной строки.\n", + "- ложь\n", + "\n", + "6) Графики, выводимые в документе Jupyter Notebook, отображаются внутри самого документа.\n", + "- Правда\n", + "\n", + "7) В комплекте с пакетом Anaconda идут браузеры Chrome и Firefox.\n", + "- ложь\n", + "\n", + "8) «Простое лучше, чем сложное» - это одна из философий Python.\n", + "- Правда\n", + "\n", + "9) Аббревиатура FLOSS означает «Free/Libre and Open Source Software».\n", + "- Правда\n", + "\n", + "10) Python поддерживает ТОЛЬКО объектно-ориентированное программирование.\n", + "- ложь\n", + "\n", + "#### Изучите самостоятельно\n", + "1) Попробуйте познакомиться с некоторыми основными командами терминала.\n", + "- ознакомился\n", + "\n", + "2) У становите пакет Anaconda согласно приведенным в этой главе инструкциям и запустите Spyder IDE. Ознакомьтесь с расположением элементов и их функциями.\n", + "- Установил и ознакомился\n", + "\n", + "3) Запустите Jupyter Notebook. Ознакомьтесь с расположением элементов и их функциями. Обратите внимание на минималистичный дизайн и функции ячеек.\n", + "- ознакомился\n", + "\n", + "4) Попробуйте ввести одну и ту же строку кода или математическую операцию в IРуthоn-консоль, Spyder IDE и Jupyter Notebook. Оцените разницу в использовании этих инструментов и в отображении результатов.\n", + "- IPython - лучший для быстрого тестирования \"на коленке\"\n", + "- Spyder - идеален для разработки серьезных проектов с необходимостью отладки\n", + "- Jupyter - непревзойден для анализа данных, исследований и создания наглядных отчетов\n", + "\n", + "5) Поищите информацию о волшебных командах в IPython и Jupyter Notebook.\n", + "- %%bash - выполняет содержимое ячейки как bash-команд\n", + "- %timeit expr - автоматически запускает expr много раз, чтобы вывести среднее время выполнения.\n", + "- %run script.py - запускает внешний Python-скрипт в текущем пространстве имён.\n", + "- %load filename - загружает содержимое файла в текущую ячейку.\n" + ] + }, + { + "cell_type": "markdown", + "id": "db85d1a3", + "metadata": {}, + "source": [] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/python/made-easy/introduction_to_python_2.py b/python/made-easy/introduction_to_python_2.py new file mode 100644 index 00000000..c39fceb9 --- /dev/null +++ b/python/made-easy/introduction_to_python_2.py @@ -0,0 +1,267 @@ +"""Введение в Python.""" + +# ### Что такое Python? +# - Python - это бесплатный интерпретируемый высокоуровневый язык программирования общего назначения с открытым исходным кодом. +# - Python был создан Гвидо ван Россумом и впервые выпущен в 1 99 1 r. Он поддерживает несколько парадигм программирования, включая структурное ( особенно процедурное) объектно-ориентированное и функциональное программирование. +# - Элегантный синтаксис и динамическая типизация Python вместе с его интерпретируемостью делают его идеальным языком для написания сценариев и быстрой разработки приложений во многих областях и на множестве платформ. +# +# ### Почему и менно Python? +# - Язык должен быть простым в изучении и использовании, а также популярным среди программистов. +# - Что касается популярности, то самыми популярными языками программирования для специалистов по данным являются: +# - Python +# - С++ +# - R +# - Java +# - SQL +# - Matlab +# +# Python удовлетворяет всем следующим критериям: +# - Это один из самых популярных языков программирования, прочно вошедший в индустрию разработки программного обеспечения. +# - Занимает первое место среди языков-аналогов согласно рейтингам из открытых источников или статей по языкам программирования. +# - Стабильно популярный, а еще лучше с растущей популярностью. +# - У языка есть большой набор библиотек, инструменты, фреймворки и большое сообщество, которое вносит свой вклад в развитие языка. +# - Язык хорошо востребован на рынке труда и позволяет получать хорошую зарплату. +# +# - У Python открытый исходный код, и он широко используется. Модули и библиотеки находятся в свободном доступе, и их число растет с каждым днем. +# +# ### Появление Python +# - Язык Python был придуман в конце 1 980-х rr. Гвидо ван Россумом, сотрудником Centrum Wiskunde & Infonnatica (CWI) в Нидерландах, как преемник языка АВС. +# - В январе 2019 г. активные разработчики ядра Python избрали Бретга Кэннона, Ника Коглана, Барри Варшаву, Кэрол Виллинг и Гвидо ван Россума в «Руководящий совет», который возглавил проект. +# - 16 октября 2000 г. был выпущен Python 2.0, в котором появилось множество новых базовых функций, включая сборщик мусора с обнаружением циклических ссылок и поддержку Unicode. +# - 3 декабря 2008 г. бьш выпущен Python 3.0.В релиз Python 3 в числе прочего входила утилита 2to3, которая автоматизировала (по крайней мере +# частично) перевод кода из Python 2 в Python 3. +# - Язык назван в честь шоу на канале ВВС «Летающий цирк Монти Пайтона» +# +# ### Python и другие языки программирования +# - Python прост в использовании, но при этом это настоящий язык программирования, в котором есть гораздо более мощный инструментарий для создания больших программ, чем могут предложить shеll-скрипты или Ьаt-файлы. +# - в Python также реализовано больше проверок ошибок, чем в С, и, как в любом языке высокого уровня, в нем есть встроенные высокоуровневые типы данных, такие как гибкие массивы и словари. +# - Python позволяет разделять программу на модули, которые можно повторно использовать в других программах на Python. В нем есть большой встроенный набор стандартных модулей, которые можно использовать в качестве основы для своих программ или в качестве примеров для начала обучения программированию на Python. В этих модулях реализован файловый ввод-вывод, системные вызовы, сокеты, а также инструменты для создания графических пользовательских интерфейсов, такие как Tkinter. +# - Python - это интерпретируемый язык, позволяющий значительно сэкономить время при разработке программы, поскольку компиляция и связывание в нем не выполняются.Интерпретатор можно использовать в интерактивном режиме. +# - Программы, написанные на Python, обычно намного короче таких же программ на С, С++ или Java по нескольким причинам. +# - Типы данных высокого уровня позволяют записывать сложные операции в одну строку. +# - Группировка операторов выполняется с помощью отступов, а не с помощью скобок в начале и конце блока. +# - Объявление переменных или аргументов не требуется. +# - Python является расширяемым. +# +# ### Философия Python +# - Основная философия языка звучит как: +# - Красивое лучше, чем уродливое. +# - Явное лучше, чем неявное. +# - Простое лучше, чем сложное. +# - Сложное лучше, чем запутанное. +# - Читаемость имеет значение. +# +# ### Преимущества Python по сравнению с другими языками +# - Простота +# - Легкость в изучении +# - Свободны й и открытый исходный код +# - Высокоуровневость +# - Портативность +# - Интерпретируемость +# +# ### Интерпретаторы Python +# - интерпретатор - это разновидность компьютерной программы, которая непосредственно выполняет инструкции, написанные на каком-либо языке программирования или языке сценариев. Под непосредственным выполнением подразумевается, что предварительная компиляция кода в программу на машинном языке не требуется. Давайте кратко рассмотрим 7 самых популярных интерпретаторов Python. +# +# #### IPython +# - IPython - это альтернативный интерпретатор Python. Это интерактивная оболочка, которая используется для вычислений на Python. В ней гораздо больше полезных функций по сравнению с интерпретатором Python, используемым по умолчанию. В комплекте с IPython идет редактор Jupyter Notebook - один из наиболее часто используемых начинающими программистами инструментов. +# +# #### CPython +# - Это стандартная и наиболее широко используемая реализация языка программирования Python. Написанный на С и Python, интерпретатор CPython содержит много внешних функций С и связан с другими языками программирования. CPython можно в какой-то степени считать компилятором, поскольку перед интерпретацией он преобразует код Python в байт-код. В нем используется GIL (глобальная блокировка интерпретатора), которая ограничивает возможности интерпретатора, поскольку она отключает параллельные потоки Python в рамках одного процесса. +# +# #### lronPython +# - IronPython - это реализация языка программирования Python для платформы .NET, в которой используются библиотеки Python и .NET. Этот интерпретатор может предоставлять код Python другим языкам, относящимся к платформе .NET. +# +# #### Jython +# Ранее известная как JPython, реализация Jython работает на платформе Java. Это сочетание Java и Python преобразует ; +# код Python в байт-код Java и, следовательно, позволяет запускать код Python на любой машине, на которой установлена JVM. Jython обеспечивает поддержку как статической, так и динамической компиляции. Важной особенностью этого интерпретатора Python является то, что он позволяет импортировать, а также использовать любые классы Java так, словно это модуль Python. +# +# #### РуРу +# - РуРу - это быстрая и совместимая альтернативная реализация языка программирования Python. Этот интерпретатор Python реализован в RPython, который представляет собой ограниченное статически типизированное подмножество языка программирования Python. +# +# #### Python Net +# - PythonNet позволяет выполнить почти бесшовную интеграцию Python с .NET CLR. Подход этого интерпретатора можно считать противоположным тому, которому следует lronPython. При использовании вместе с Mono, PythonNet позволяет встроенным в операционные системы установкам Python (кроме +# Windows) работать в среде .NET. PythonNet можно использовать совместно с IronPython без каких-либо проблем +# +# #### Stackless Python +# - CPython и другие популярные интерпретаторы Python для управления стеком используют язык С. Но к интерпретатору Stackless Python это не относится. Хотя в Stackless Python используется стек С, между вызовами функций он очищается. Следовательно, интерпретатор Python в работе со стеком не зависит от вызова С. Как и CPython, Stackless Python написан с использованием С и Python. Помимо поддержки потоков, у Stackless Python есть поддержка каналов связи, сопрограмм, предварительно скомпилированных двоичных файлов, циклического планирования, сериализации задач и тасклетов. Возможно, самая важная особенность Stackless Python - это наличие микропотоков. Эта возможность помогает избежать значительной части накладных: расходов, связанных с обычными потоками операционной системы. +# +# #### Объектная ориенти рованность +# - Python поддерживает процедурно-ориентированное программирование, а также объектно-ориентированное программирование. В процедурно-ориентированных: языках программа состоит из процедур или функций, в которых заключены многократно используемые части программы. В объектно-ориентированных языках программа построена на объектах, которые включают в себе данные и функциональность. В Python очень мощный, но упрощенный стиль объектно-ориентированного программирования, особенно по сравнению с такими крупными языками, как С++ или Java. +# +# #### Расширяемость +# - Если в коде есть критический фрагмент, от которого зависит быстродействие, или вы хотите, чтобы какой-то фрагмент алгоритма бьm скрыт, вы можете написать эту часть программы на С или С++, а затем использовать ее из программы на Python. Python легко расширяется с помощью кода C/C++/Java и легко встраивается в приложения. +# +# #### Встраиваемость +# - Код Python можно встраивать в программы на С/С++, что позволяет использовать возможности скриптов. +# +# #### Внушительные библиотеки +# - Стандартная библиотека Python, которую обычно упоминают как одну из сильнейших сторон этого языка, содержит инструменты, подходящие для огромного множества задач. +# - По состоянию на март 2018 г. официальный репозиторий для стороннего программного обеспечения Python под названием PyPI (Python Package lndex) содержал более 130 ООО пакетов с широким набором функций, в том числе: +# - графические пользовательские интерфейсы; +# - веб-фреймворки; +# - мультимедиа; +# - базы данных; +# - сети; +# - фреймворки тестирования; +# - автоматизация; +# - парсинг веб-страниц; +# - документация; +# - системное администрирование; +# - научные вычисления; +# - обработка текста; +# - обработка изображений. +# +# ### Python для начинающих +# - Python очень простой и последовательный синтаксис и богатая стандартная библиотека, и, что наиболее важно, использование Python в начальном +# курсе программирования позволяет студентам сосредоточиться на важных навыках программирования, таких как декомпозиция задач и проектирование типов данных. Используя Python, студенты могут быстро познакомиться с базовыми понятиями, такими как циклы и функции. +# +# ### Версии Python +# - Вышедший в конце 2000 г. Python 2 характеризовался более прозрачным и вместе с тем полным процессом разработки языка, чем в более ранних версиях Python. +# - После выпуска Python 3 .0 в 2008 г., 3 июля 20 1 0 г. вышел Python 2.7, который планировался как последний выпуск в линейке версий 2.х. Целью Python 2. 7 бьmо облегчить пользователям Python 2.х переход на Python 3 и предоставить совместимость между этими версиями. +# - Python 3 считается будущим Python, и именно эта версия языка в настоящее время находится в разработке. Python 3 бьm выпущен в конце 2008 г. после масштабной переработки, и в нем были устранены и исправлены внутренние недостатки, присущие более ранним версиям языка. +# +# ### Ключевые отличия версий +# - У Python 2. 7 и Python 3 немало схожих возможностей, но н е следует рассматривать эти языки как полностью взаимозаменяемые. Конечно, можно писать хороший код и полезные программы в любой версии, но важно помнить о различиях в синтаксисе и обработке кода. +# +# ### Как установить и использовать Python +# -Последнюю версию автономного дистрибутива Python можно загрузить по следующей ссылке: https:// www. python.org/downloads +# +# ### Дистрибути в Anaconda +# - Дистрибутив Anaconda - это самый простой и наиболее часто используемый способ установки Python и других необходимых пакетов. Он находится в свободном доступе и прост в установке. +# +# ### Почему именно Anaconda? +# - В дистрибутиве Anaconda дополнительно реализовано много полезных функциональностей, которые упрощают работу начинающим программистам. +# - Возможность выбора и установки нужной вам версии Python. +# - Возможность установки/обновления пакетов совершенно независимо от системных библиотек или прав администратора. +# - Инструмент Conda устанавливает бинарные пакеты и не требует компиляцииресурсов, таких как pip, что тоже удобно, если вы ограничены в правах установкинеобходимых библиотек. +# - Частичное избавление от головной боли на предмет того, какая версия пакета Х совместима с какой версией пакета У, когда оба они требуются для установки пакета Z. +# - Возможность загрузки либо полной версии, с NumPy, Scipy, PyQt, Spyder IDEи т. д., либо в минимальной комплектации (miniconda), где вы можете выбрать только нужные компоненты. +# - Отсутствие риска испортить системные библиотеки. +# +# +# ### Установка Anaconda в Windows +# - Скачайте установочный файл Anaconda(https://www.anaconda.com/download/#windows ). +# - Ниже приведены ссылки на документацию по установке Anaconda для различных операционных систем: +# - https://docs.anaconda.com/anaconda/install/windows/; +# - https://docs.anaconda.com/anaconda/install/mac-os/; +# - https://docs.anaconda.com/anaconda/install/Iinux/. +# +# ### Запуск Python через командную строку +# - Командная строка - это приложение, которое позволяет запускать команды для просмотра папок и файлов, выполнения скриптов и, конечно, для работы с Python. +# - Консоль (она же терминал или командная строка) - это текстовый способ взаимодействия с вашей ОС, точно такой же, по существу, как рабочий стол и мышь, которые тоже являются способом взаимодействия с системой. +# +# ### Приложения Anaconda +# - 3 оcновных программ, которые используются чаще всего: +# - Консоль IPython; +# - Spyder; +# - Jupyter Norebook. +# +# ### Консоль IPython Qt +# - Консоль Qt - это очень легкое приложение, во многом похожее на командную строку, но с дополнительными функциями, которые можно реализовать только в графическом интерфейсе, такими как встраивание рисунков, правильное многострочное редактирование с подсветкой синтаксиса, подсказки и многое другое. +# +# ### Spyder IDE +# - Spyder представляет собой бесплатную интегрированную среду разработки (IDE), которая входит в состав Anaconda. В ней имеются функции редактирования, интерактивного тестирования, отладки и самоанализа. +# +# ### Jupyter Notebook +# +# #### Приложение Jupyter Notebook +# - Это редактор расширяет консольный подход к интерактивным вычислениям в качественно новом направлении и сконструирован как веб-приложение, подходящее для записи всего вычислительного процесса: разработки, документирования и выполнения кода, а также передачи результатов. Jupyter Notebook объединяет в себе два компонента: +# - веб-приложение - инструмент на основе браузера, предназначенный для интерактивного создания документов, сочетающий в себе пояснительный текст, математические вычисления и мультимедийный вывод результатов; +# - документы Notebook, содержащие все видимое в веб-браузере, включая входные и выходные данные вычислений, пояснительный текст, математические данные, изображения и мультимедийные представления объектов. +# +# #### Основные возможности веб-приложения +# - Jupyter Notebook позволяет работать с кодом в редакторе, встроенном в окно браузера, с автоматическим выделением синтаксиса цветом, отступами, заполнением табуляцией и анализом. +# +# #### Документы Notebook +# - Документы Notebook содержат входные и выходные данные интерактивного сеанса, а также дополнительный текст, который добавлен к коду, но не предназначен для выполнения. Эти документы являются внутренними файлами JSON и сохраняются с расширением ipynb. Поскольку JSON - это неформатированный текст, эти файлы также можно включать в контроль версий и делиться ими с коллегами. Документы Notebook можно экспортировать в некоторые статические форматы, например, НТМL (для публикации в блоrах), Restructured Text, LaTeX, PDF. Кроме того, любой документ Notebook формата ipynb, доступный по публичному URL-aдpecy, можно опубликовать через Jupyter Notebook Viewer (nbviewer). +# +# ### Упражнения +# +# #### Ответьте на вопросы +# +# 1) Python - это программное обеспечение с открытым исходным кодом. Это то же самое, что и бесплатное ПО? +# - нет, потому у бесплатного ПО может быть закрытый исходный код, а также всё зависит от лицензии +# +# 2) У всех ли бесплатных программ открытый исходный код? А если нет, то в чем разница? +# - нет, т.к. разработчики бесплатного ПО могут не захотеть делиться исходным кодом +# +# 3) Python поддерживает динамическую типизацию. Что это такое? +# - интерпретатор автоматически определяет, какого типа значение присваивается переменной. Предварительно не нужно объявлять тип переменной. +# +# 4) Назовите 5 самых популярных языков программирования для специалистов по анализу данных. +# - python, R, SQL, C++, java, matlab +# +# 5) В чем заключается преимущество Python по сравнению с языком С? +# - портабельность и кроссплатформенность, простота, интерпретируемость, автоматическое управление памятью +# +# 6) Python портативен. Что в этом контексте означает «портативность»? +# - код работает на разных устройствах и ОС +# +# 7) В чем разница между «расширяемым» и «встраиваемым» языком? +# - Расширяемый язык позволяет писать модули на других языках и подключать их к python для улучшения производительности или доступа к низкоуровневым функциям (например, ручное управление памятью на плюсах). +# - Встраиваемый язык можно встроить в приложение, например, на C/C++. Т.е. интерпретатор можно подключить к коду, работающему на других языках. +# +# 8) В чем смысл IDE? Чем она отличается от командной строки? +# - подсветка синтаксиса, дополнительные функции, встроенный редактор кода, терминал, файловая система и многое другое +# +# 9) Как открыть существующий документ Jupyter Notebook? Чем эта процедура отличается от открытия РDF-файла или текстового файла? +# - jupyter notebook name.ipynb. Тем, что ipynb - не статический файл, а контейнер для кода и вывода, который открывается через веб-сервер Jupyter в браузере. PDF и текстовый файл открываются в просмотрщике/редакторе как статический документ, без возможности интерактивно выполнять вычисления и изменять содержимое ячеек. +# +# 10) В чем разница между «ячейками разметки Markdown» и «ячейками кода» в Jupyter Notebook? Для чего они нужны? +# - Markdown ячейки используются для текста, который имеет возможность к форматированию. Обычно там поясняется написанный код или же математическое обоснование к коду. +# +# #### Правда или ложь +# +# 1) Язык программирования Python был назван в честь змеи питон. +# - ложь +# +# 2) Python - это высокоуровневый язык общего назначения. +# - Правда +# +# 3) Python компилируется и не интерпретируется. +# - ложь +# +# 4) В Python команда два + два вернет Четыре. +# - Правда +# +# 5) Консоль IPython аналогична окну командной строки. +# - ложь +# +# 6) Графики, выводимые в документе Jupyter Notebook, отображаются внутри самого документа. +# - Правда +# +# 7) В комплекте с пакетом Anaconda идут браузеры Chrome и Firefox. +# - ложь +# +# 8) «Простое лучше, чем сложное» - это одна из философий Python. +# - Правда +# +# 9) Аббревиатура FLOSS означает «Free/Libre and Open Source Software». +# - Правда +# +# 10) Python поддерживает ТОЛЬКО объектно-ориентированное программирование. +# - ложь +# +# #### Изучите самостоятельно +# 1) Попробуйте познакомиться с некоторыми основными командами терминала. +# - ознакомился +# +# 2) У становите пакет Anaconda согласно приведенным в этой главе инструкциям и запустите Spyder IDE. Ознакомьтесь с расположением элементов и их функциями. +# - Установил и ознакомился +# +# 3) Запустите Jupyter Notebook. Ознакомьтесь с расположением элементов и их функциями. Обратите внимание на минималистичный дизайн и функции ячеек. +# - ознакомился +# +# 4) Попробуйте ввести одну и ту же строку кода или математическую операцию в IРуthоn-консоль, Spyder IDE и Jupyter Notebook. Оцените разницу в использовании этих инструментов и в отображении результатов. +# - IPython - лучший для быстрого тестирования "на коленке" +# - Spyder - идеален для разработки серьезных проектов с необходимостью отладки +# - Jupyter - непревзойден для анализа данных, исследований и создания наглядных отчетов +# +# 5) Поищите информацию о волшебных командах в IPython и Jupyter Notebook. +# - %%bash - выполняет содержимое ячейки как bash-команд +# - %timeit expr - автоматически запускает expr много раз, чтобы вывести среднее время выполнения. +# - %run script.py - запускает внешний Python-скрипт в текущем пространстве имён. +# - %load filename - загружает содержимое файла в текущую ячейку. +# + +# diff --git a/python/venv.py b/python/venv.py new file mode 100644 index 00000000..d6dd5968 --- /dev/null +++ b/python/venv.py @@ -0,0 +1,59 @@ +"""Работа с виртуальным окружением Venv.""" + +# 1) Что делает команда python -m venv venv? +# - создает виртуальное окружение(ставит Python в отедльной папке) +# 2) Что делает каждая команда в списке ниже? +# ![image.png](attachment:image.png) +# - pip list - показывает установленные пакеты +# - pip freeze > requirements.txt - выгружает список зависимостей +# в файл requirements.txt +# - pip install -r requirements.txt скачивает все зависимости из файла +# requirements.txt +# 3) Что делает каждая команда в списке ниже? +# ![image-2.png](attachment:image-2.png) +# - conda env list - показывает все существующие окружения conda +# - conda create -n env_name python=3.5 - создаёт окружение conda с именем +# env_name и версией python = 3.5 +# - conda env update -n env_name -f file.yml - создает(если окружение есть то обновляет его) +# окружение env_name в соответствии с зависимостями, перечисленных в файле file.yml +# - source activate env_name - активирует окружение env_name +# - source deactivate - деактивирует текущее окружение +# - conda clean -a - очищает все ненужные файлы из кэша Conda +# вставьте скрин вашего терминала, где вы активировали сначала venv, потом conda, назовите окружение "SENATOROV" +# ![image-3.png](attachment:image-3.png) +# - conda activate SENATOROV +# 4) Как установить необходимые пакеты внутрь виртуального окружения для conda/venv? +# - для venv pip install <необходимый пакет> или уже с готовым файлом с +# зависимостями написать pip install -r requirements.txt +# - для conda используем conda install <имя_пакета> или +# conda env -n update -f environment.yml +# 5) Что делают эти команды? +# - pip freeze -> requirements.txt - выгружают зависимости в файл requirements.txt +# - conda env export -> environment.yml - выгружают зависимости в файл +# environment.ymlpip freeze -> requirements.txt +# conda env export -> environment.yml +# 6) вставьте скрин, где будет видна папка VENV в вашем репозитории а также файлы зависимостей requirements.txt и environment.yml, файлы должны содержать зависимости +# - conda ё(![image-4.png](attachment:image-4.png)) +# - venv (![image-5.png](attachment:image-5.png)) +# 7) Что делают эти команды? +# - pip install -r requirements.txt - Устанавливают зависимости в текущее окружение +# - conda env create -f environment.yml. - создает окружение с зависимостями из файла environment.yml +# 8) Что делают эти команды? +# - pip list - показывает список установленных пакетов +# - pip show, - выводит полную информацию об одном указанном пакете, установленном через pip +# - conda list - выводит список всех установленных пакетов в текущем conda-окружении +# 9) Где по умолчанию больше пакетов venv/pip или conda? и почему дата сайнинисты используют conda? +# 10) вставьте скрин где будет видно, Выбор интерпретатора Python (conda) в VS Code/cursor +# - ![image-6.png](attachment:image-6.png) +# 11) добавьте в .gitignore папку SENATOROV +# - добавил +# 12) Зачем нужно виртуально окружение? +# - изолировать зависимости разных проектов, фиксировать версии пакетов, +# работать с разными версиями Python одновременно, не засорять глобальный +# интерпретатор +# 13) С этого момента надо работать в виртуальном окружении conda, ты научился(-ась) выгружать зависимости и работать с окружением? +# - да +# 14) Удалите папку VENV, она больше не нужна, мы же не разрабы, нам нужна только conda +# - сделано + +# diff --git a/python/yandex/basic_python_constructs_2_1.ipynb b/python/yandex/basic_python_constructs_2_1.ipynb new file mode 100644 index 00000000..a7047ff4 --- /dev/null +++ b/python/yandex/basic_python_constructs_2_1.ipynb @@ -0,0 +1,1008 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "id": "d2a9ad8b", + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"2.1.Ввод и вывод данных.\n", + "\n", + "Операции с числами, строками.\n", + "\n", + "Форматирование.\n", + "\"\"\"" + ] + }, + { + "cell_type": "markdown", + "id": "291b78c6", + "metadata": {}, + "source": [ + "## 1_\"Привет, Яндекс!\"\n", + "\n", + "- Начнём с задачи, которая поможет вам закрепить навык работы с базовым синтаксисом Python для вывода текста.\n", + "- Начнём с простого. Напишите программу, которая выведет текст: Привет, Яндекс!.\n", + "- Формат ввода\n", + "- Ввод не требуется.\n", + "- Формат вывода\n", + "- Выведите одну строку:\"Привет, Яндекс!\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "04bb82ec", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Привет, Яндекс!\n" + ] + } + ], + "source": [ + "def greet() -> None:\n", + " \"\"\"greet.\"\"\"\n", + " print(\"Привет, Яндекс!\")\n", + "\n", + "\n", + "greet()" + ] + }, + { + "cell_type": "markdown", + "id": "f2a6533d", + "metadata": {}, + "source": [ + "## 2_\"Привет, всем!\"\n", + "\n", + "- Предлагаем решить следующую задачу, которая поможет вам научиться работать с функцией input() для ввода данных и форматирования строк для вывода результата.\n", + "- Для этого напишите диалоговую программу, которая сначала спросит имя пользователя, а затем поприветствует его.\n", + "- Формат ввода\n", + "- Одна строка — имя пользователя программы.\n", + "- Формат вывода:\n", + "- Первая строка: вопрос «Как Вас зовут?»\n", + "- Вторая строка: приветствие пользователя в формате «Привет, <имя пользователя>», где <имя пользователя> — это строка, введённая пользователем." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ec50b03f", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Как Вас зовут?\n", + "Привет, fff\n" + ] + } + ], + "source": [ + "def hi_all() -> None:\n", + " \"\"\"hi_all.\"\"\"\n", + " name: str = input()\n", + " print(\"Как Вас зовут?\")\n", + " print(\"Привет,\", name)\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " hi_all()" + ] + }, + { + "cell_type": "markdown", + "id": "f4b2f1ff", + "metadata": {}, + "source": [ + "## 3_Излишняя автоматизация\n", + "\n", + "- Вы создадите программу, которая принимает одну строку и выводит её трижды, каждая строка на новой строке.\n", + "- Формат ввода\n", + "- Одна строка — весьма полезная информация.\n", + "- Формат вывода\n", + "- Трижды повторённая весьма полезная информация." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ed1bbb96", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "vsds\n", + "vsds\n", + "vsds\n" + ] + } + ], + "source": [ + "def auto() -> None:\n", + " \"\"\"auto.\"\"\"\n", + " test_number: str = input()\n", + " print(test_number)\n", + " print(test_number)\n", + " print(test_number)\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " auto()" + ] + }, + { + "cell_type": "markdown", + "id": "f7d8d928", + "metadata": {}, + "source": [ + "## 4_Сдача\n", + "\n", + "- Возьмём простую задачу из школьной математики. Покупатель купил 2.5 кг черешни по цене 38 руб/кг.\n", + "- Сколько сдачи он получит? Вычислите стоимость покупки, а затем найдите разность между номиналом купюры и этой стоимостью.\n", + "- Формат ввода\n", + "- Одно натуральное число - номинал купюры пользователя (≥100≥100).\n", + "- Формат вывода\n", + "- Одно натуральное число — размер сдачи.\n", + "- Примечание\n", + "- Используйте стандартные арифметические операции. Ответ всегда будет натуральным числом, так как номинал купюры больше стоимости покупки." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9c59b9c4", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "-91\n" + ] + } + ], + "source": [ + "def local_change() -> None:\n", + " \"\"\"local_change.\"\"\"\n", + " money: int = int(input())\n", + " count: int = int(2.5 * 38)\n", + " price: int = money - count\n", + " print(price)\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " local_change()" + ] + }, + { + "cell_type": "markdown", + "id": "19d8822a", + "metadata": {}, + "source": [ + "## 5_Магазин\n", + "\n", + "- Теперь надо определить, какую сдачу нужно выдать покупателю за покупку товара. Стоимость покупки вычисляется как произведение цены на вес товара.\n", + "- Формат ввода\n", + "- Три натуральных числа:\n", + "- цена товара за единицу веса;\n", + "- вес товара;\n", + "- количество денег у покупателя.\n", + "- Формат вывода\n", + "- Одно целое число — сдача, которую требуется отдать пользователю.\n", + "- Примечание\n", + "- Предполагается, что у покупателя достаточно денег для оплаты покупки." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c4ddfaf7", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "-2\n" + ] + } + ], + "source": [ + "def local_shop() -> None:\n", + " \"\"\"local_shop.\"\"\"\n", + " price: int = int(input())\n", + " weight: int = int(input())\n", + " money: int = int(input())\n", + " buy: int = money - (price * weight)\n", + " print(buy)\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " local_shop()" + ] + }, + { + "cell_type": "markdown", + "id": "b69676fe", + "metadata": {}, + "source": [ + "## 6_Чек\n", + "\n", + "- Напишите программу, которая рассчитывает стоимость покупки и печатает чек в заданном формате. Итоговая стоимость вычисляется как произведение цены за килограмм и веса товара. Гарантируется, что у покупателя достаточно денег для покупки.\n", + "- Формат ввода\n", + "- Четыре строки:\n", + "- название товара (строка);\n", + "- цена товара за килограмм (натуральное число);\n", + "- вес товара (натуральное число);\n", + "- количество денег у пользователя (натуральное число).\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "71d3528e", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Чек\n", + "черешня - 3кг - 2руб/кг\n", + "Итого: 6руб\n", + "Внесено: 10руб\n", + "Сдача: 4руб\n" + ] + } + ], + "source": [ + "def check() -> None:\n", + " \"\"\"check.\"\"\"\n", + " name_product: str = input()\n", + " price: int = int(input())\n", + " weight: int = int(input())\n", + " money: int = int(input())\n", + " sale: int = price * weight\n", + " buy: int = money - sale\n", + " print(\"Чек\")\n", + " print(f\"{name_product} - {weight}кг - {price}руб/кг\")\n", + " print(f\"Итого: {sale}руб\")\n", + " print(f\"Внесено: {money}руб\")\n", + " print(f\"Сдача: {buy}руб\")\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " check()" + ] + }, + { + "cell_type": "markdown", + "id": "9bb2b09f", + "metadata": {}, + "source": [ + "## 7_Делу — время, потехе — час\n", + "\n", + "- Напишите программу, которая N раз выводит строку «Купи слона!».\n", + "- Формат ввода\n", + "- Одно натуральное число N\n", + "- Формат вывода\n", + "- N строк с фразой: \"Купи слона!\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d02686dc", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Купи слона!\n", + "Купи слона!\n", + "Купи слона!\n", + "Купи слона!\n", + "Купи слона!\n", + "\n" + ] + } + ], + "source": [ + "def buy_elephant() -> None:\n", + " \"\"\"buy_elephant.\"\"\"\n", + " num: int = int(input())\n", + " print(\"Купи слона!\\n\" * num)\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " buy_elephant()" + ] + }, + { + "cell_type": "markdown", + "id": "f2374ab8", + "metadata": {}, + "source": [ + "## 8_Наказание\n", + "\n", + "- Напишите программу, которая выводит N строк наказания. Каждая строка должна содержать текст в указанном формате, включающий часть наказания, введённую пользователем.\n", + "- Формат ввода\n", + "- Первая строка – натуральное число N ≥ 1 – количество строк наказания.\n", + "- Вторая строка – текст, являющийся частью наказания.\n", + "- Формат вывода\n", + "- N строк вида: \"Я больше никогда не буду писать \"<часть наказания>\"!\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d6a3011d", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Я больше никогда не буду писать \"Купи слона!\"!\n", + "Я больше никогда не буду писать \"Купи слона!\"!\n", + "Я больше никогда не буду писать \"Купи слона!\"!\n", + "\n" + ] + } + ], + "source": [ + "def punishment() -> None:\n", + " \"\"\"punishment.\"\"\"\n", + " number: int = int(input())\n", + " word: str = input()\n", + " print(f'Я больше никогда не буду писать \"{word}\"!\\n' * number)\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " punishment()" + ] + }, + { + "cell_type": "markdown", + "id": "bb27a156", + "metadata": {}, + "source": [ + "## 9_Деловая колбаса\n", + "\n", + "- В детском саду 2 ребенка вместе съедают 2 куска колбасы за 2 минуты.\n", + "- Напишите программу, которая вычисляет, сколько кусков колбасы съедят N детей за M минут.\n", + "- Формат ввода\n", + "- В первой строке записано натуральное число N ≥ 1\n", + "- Во второй строке записано натуральное число M ≥ 1\n", + "- Формат вывода\n", + "- Одно натуральное число — количество кусков колбасы, съеденных детьми." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "065cc8a4", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2\n" + ] + } + ], + "source": [ + "def eat_time() -> None:\n", + " \"\"\"eat_time.\"\"\"\n", + " children = int(input())\n", + " eat = int(input())\n", + " time = int((children * eat) / 2)\n", + " print(time)\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " eat_time()" + ] + }, + { + "cell_type": "markdown", + "id": "e967eebf", + "metadata": {}, + "source": [ + "## 10_Детский сад — штаны на лямках\n", + "\n", + "- Напишите программу, которая формирует карточку для личного дела ребёнка. Карточка создаётся на основе имени ребёнка и трёхзначного номера шкафчика, который содержит:\n", + "- Первую цифру — номер группы. Вторую цифру — номер кроватки. Третью цифру — порядковый номер ребёнка в списке группы.\n", + "- Формат ввода\n", + "- В первой строке записано имя ребенка.\n", + "- Во второй строке записан номер шкафчика.\n", + "- Формат вывода\n", + "- Карточка в виде: \n", + "Группа №<номер группы>. \n", + "<номер ребёнка в списке>. <имя ребенка>. \n", + "Шкафчик: <номер шкафчика>. \n", + "Кроватка: <номер кроватки>." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "dc367151", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Группа №8.\n", + "2. Ванечка.\n", + "Шкафчик: 832.\n", + "Кроватка: 3.\n" + ] + } + ], + "source": [ + "def kindergarten() -> None:\n", + " \"\"\"kindergarten.\"\"\"\n", + " name: str = input()\n", + " number: int = int(input())\n", + " number_group: int = number // 100\n", + " number_bed: int = number // 10 % 10\n", + " child: int = number % 10\n", + " print(f\"Группа №{number_group}.\")\n", + " print(f\"{child}. {name}.\")\n", + " print(f\"Шкафчик: {number}.\")\n", + " print(f\"Кроватка: {number_bed}.\")\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " kindergarten()" + ] + }, + { + "cell_type": "markdown", + "id": "349a7806", + "metadata": {}, + "source": [ + "## 11_Автоматизация игры\n", + "\n", + "- Итак, в этой задаче вы научитесь работать с числовыми данными и формировать числа при помощи математических операций.\n", + "- Напишите программу для робота-няни, которая из числа вида abcd составляет число badc.\n", + "- Формат ввода\n", + "- Одно четырёхзначное число.\n", + "- Формат вывода\n", + "- Одно четырёхзначное число — результат перестановки." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "86688a47", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2143\n" + ] + } + ], + "source": [ + "def auto_game() -> None:\n", + " \"\"\"auto_game.\"\"\"\n", + " number: int = int(input())\n", + " numb_one: int = number // 1000\n", + " numb_two: int = number // 100 % 10\n", + " numb_three: int = number % 100 // 10\n", + " numb_four: int = number % 10\n", + " print(f\"{numb_one}{numb_two}{numb_three}{numb_four}\")\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " auto_game()" + ] + }, + { + "cell_type": "markdown", + "id": "cc3e8e5c", + "metadata": {}, + "source": [ + "## 12_Интересное сложение\n", + "\n", + "- Один малыш из детского сада услышал от старшей сестры о некоем действии с числами — сложении.\n", + "И как это часто бывает — он не до конца разобрался, как работает сложение. Например, не совсем понял, как произвести перенос разряда.\n", + "- Напишите программу, которая складывает два числа поразрядно без учёта переносов. Каждая пара цифр суммируется независимо, и результат записывается в соответствующий разряд.\n", + "- Формат ввода\n", + "- В первой строке записано натуральное число меньше 1000.\n", + "- Во второй строке записано натуральное число меньше 1000.\n", + "- Формат вывода\n", + "- Одно число — результат сложения введённых чисел без учёта переносов." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0ae19cfd", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "112\n" + ] + } + ], + "source": [ + "def interesting_offer() -> None:\n", + " \"\"\"interesting_offer.\"\"\"\n", + " first_number: int = int(input())\n", + " second_number: int = int(input())\n", + "\n", + " first_count_number_one: int = first_number // 100\n", + " first_count_number_two: int = first_number // 10 % 10\n", + " first_count_number_three: int = first_number % 10\n", + "\n", + " second_count_number_one: int = second_number // 100\n", + " second_count_number_two: int = second_number // 10 % 10\n", + " second_count_number_three: int = second_number % 10\n", + "\n", + " add_first_numbers: int = (first_count_number_one + second_count_number_one) % 10\n", + " add_second_numbers: int = (first_count_number_two + second_count_number_two) % 10\n", + " add_third_numbers: int = (first_count_number_three + second_count_number_three) % 10\n", + "\n", + " my_namber: int = int(\n", + " str(add_first_numbers) + str(add_second_numbers) + str(add_third_numbers)\n", + " )\n", + "\n", + " print(my_namber)\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " interesting_offer()" + ] + }, + { + "cell_type": "markdown", + "id": "db3d50a4", + "metadata": {}, + "source": [ + "## 13_Дед Мороз и конфеты\n", + "\n", + "- Настало самое главное событие в детском саду — новогодний утренник.Хорошо замаскированная робоняня в роли Деда Мороза решила раздать детям конфеты так, чтобы каждому досталось поровну.\n", + "- Напишите программу для робоняни, которая поможет раздать конфеты детям на новогоднем утреннике. Конфеты должны быть разделены поровну между всеми детьми, а оставшиеся конфеты останутся у Деда Мороза.\n", + "- Формат ввода\n", + "- В первой строке указано натуральное число N — количество детей на утреннике (N ≥ 1).\n", + "- Во второй строке указано натуральное число M — количество конфет в конфетном отсеке робоняни (M ≥ 1).\n", + "- Формат вывода\n", + "- Выведите два числа, каждое с новой строки:\n", + "- Количество конфет, которое получит каждый ребёнок.\n", + "- Количество конфет, которые останутся в отсеке." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "085c086c", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "33\n", + "1\n" + ] + } + ], + "source": [ + "def santa_candy() -> None:\n", + " \"\"\"Santa_candy.\"\"\"\n", + " children: int = int(input())\n", + " candies: int = int(input())\n", + " count_candies: int = candies // children\n", + " leftover_candy: int = candies % children\n", + " print(count_candies)\n", + " print(leftover_candy)\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " santa_candy()" + ] + }, + { + "cell_type": "markdown", + "id": "42fbebef", + "metadata": {}, + "source": [ + "## 14_Шарики и ручки\n", + "\n", + "- В группе детского сада проводится игра с шариками трёх цветов: красного, зелёного и синего. Каждый ребёнок по очереди вытаскивает один шарик из ящика. Победителем становится тот, кто первым вытащит зелёный шарик. \n", + "- Напишите программу, которая определяет максимальное количество ходов, которое потребуется, чтобы найти зелёный шарик.\n", + "- Формат ввода\n", + "- Три натуральных числа, каждое на новой строке:\n", + "- Количество красных шариков.\n", + "- Количество зелёных шариков.\n", + "- Количество синих шариков.\n", + "- Формат вывода\n", + "- Одно число — максимальное количество ходов, которое потребуется для определения победителя." + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "id": "1ebc05e1", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "5\n" + ] + } + ], + "source": [ + "def balls_pens() -> None:\n", + " \"\"\"balls_pens.\"\"\"\n", + " red_ball: int = int(input())\n", + " green_ball: int = int(input()) * 0\n", + " blue_ball: int = int(input())\n", + " count_ball: int = red_ball + blue_ball + 1 + green_ball\n", + " print(count_ball)\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " balls_pens()" + ] + }, + { + "cell_type": "markdown", + "id": "62dd4a02", + "metadata": {}, + "source": [ + "## 15_В ожидании доставки\n", + "\n", + "- Сегодня в N часов M минут владелец магазина заказал доставку нового товара.Оператор сообщил, что продукты доставят через T минут. Сколько будет времени на электронных часах, когда привезут долгожданные продукты?\n", + "- Формат ввода\n", + "- В первой строке записано натуральное число N (0 ≤ N < 24).\n", + "- Во второй строке записано натуральное число M (0 ≤ M < 60).\n", + "- В третьей строке записано натуральное число T (30 ≤ T < 10^9).\n", + "- Формат вывода\n", + "- Одна строка, представляющая циферблат электронных часов." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4f83b045", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "09:05\n" + ] + } + ], + "source": [ + "def expectation_delivery() -> None:\n", + " \"\"\"expectation_delivery.\"\"\"\n", + " hours: int = int(input())\n", + " minutes: int = int(input())\n", + " delivery_time: int = int(input())\n", + "\n", + " total_minutes: int = hours * 60 + minutes + delivery_time\n", + " hours_time: int = (total_minutes // 60) % 24\n", + " minutes_time: int = total_minutes % 60\n", + " print(f\"{hours_time:02d}:{minutes_time:02d}\")\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " expectation_delivery()" + ] + }, + { + "cell_type": "markdown", + "id": "989d0b8c", + "metadata": {}, + "source": [ + "## 16_Доставка\n", + "\n", + "- Продолжаем тренироваться работать с вычислением времени. Продуктовый склад и магазин находятся на одной дороге города Н. Склад находится на отметке A км, а магазин — B км. Средняя скорость автомобиля, доставляющего товары, C км/ч.\n", + "За какое время продукты попадают со склада в магазин?\n", + "- Формат ввода\n", + "- Три натуральных числа A, B и C, каждое на отдельной строке.\n", + "- Формат вывода\n", + "- Одно рациональное число с точностью до сотых." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2f219320", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "4.4\n" + ] + } + ], + "source": [ + "def delivery() -> None:\n", + " \"\"\"delivery.\"\"\"\n", + " warehouse: int = int(input())\n", + " shop: int = int(input())\n", + " car_speed: int = int(input())\n", + "\n", + " distance: float = abs(shop - warehouse)\n", + " time: float = distance / car_speed\n", + " print(round(time, 2))\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " delivery()" + ] + }, + { + "cell_type": "markdown", + "id": "e0a4ded0", + "metadata": {}, + "source": [ + "## 17_Ошибка кассового аппарата\n", + "\n", + "- Мы уже помогали магазину с расчётами и формированием чеков, но сегодня кассовый аппарат вместо привычных продавцу десятичных чисел начал выдавать двоичные.Техподдержка приедет только завтра, а магазин должен продолжать работать. Надо помочь.\n", + "- Напишите программу, которая поможет магазину посчитать общую сумму выручки, учитывая, что кассовый аппарат выдаёт сумму последней покупки в двоичной системе счисления.\n", + "- Формат ввода\n", + "- В первой строке записано десятичное число — общая сумма купленных в магазине товаров на данный момент.\n", + "- Во второй строке указано двоичное число — сумма за последнюю покупку.\n", + "- Формат вывода\n", + "- Одно десятичное число — сумма прибыли за день с учётом последней покупки." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "751f0a2c", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "136\n" + ] + } + ], + "source": [ + "def error() -> None:\n", + " \"\"\"error.\"\"\"\n", + " all_sum: int = int(input())\n", + " last_buy: str = input()\n", + " conversion_decimal: int = int(last_buy, 2)\n", + " total_sum: int = all_sum + conversion_decimal\n", + " print(total_sum)\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " error()" + ] + }, + { + "cell_type": "markdown", + "id": "f00078f7", + "metadata": {}, + "source": [ + "## 18_Сдача 10\n", + "\n", + "- Как насчет того, чтобы научиться конвертировать числа из двоичной в десятичную систему?Продолжаем работать с задачей. Кстати, несмотря на ошибку аппарата, сдачу тоже нужно отдавать.\n", + "- Формат ввода\n", + "- Цена покупки — двоичное число, выданное кассовым аппаратом.\n", + "- Номинал купюры пользователя — десятичное число ( ≥ 100).\n", + "- Формат вывода\n", + "- Одно десятичное число — сдача, которую требуется отдать пользователю.\n", + "- Примечание\n", + "- Все числа, используемые в задаче, целые." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e09ea66a", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "27\n" + ] + } + ], + "source": [ + "def change_2() -> None:\n", + " \"\"\"change_2.\"\"\"\n", + " last_buy: str = input()\n", + " money: int = int(input())\n", + " conversion_decimal: int = int(last_buy, 2)\n", + " change: int = money - conversion_decimal\n", + " print(change)\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " change_2()" + ] + }, + { + "attachments": { + "image.png": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAASAAAACXCAYAAAC1O4b5AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAABP9SURBVHhe7Z1PaBtXHsd/29KrDblss4eYlmVFHSwEi0thbz4IstBCQUJOD2bBUNhCCPSwBCZJiV1B2MOCCXShYFh0qC00UEhgDTr4HBoKQqJeVEoW57BtLwWrhxb6x/v7vfdm5s1o9MeypCc53w9MopmnGc88zfvO772Z33d+c8oQAAA44AXzPwAATB0IEADAGRAgAIAzIEAAAGdAgAAAzoAAAQCcMfA2/C+//EI//fST+v/XX381SwEA4Pz0FaAff/xRiQ8AAEyCnl2wH374AeIDAJgoqQIkkc/PP/9s5gAAYDJ0CVAw5gMAAJOmS4AgPgCAaZEaAQEAwDToEiDcagcATIvUQWgAAJgGECAAgDMgQAAAZ0CAAADOgAABAJwBAQIAOAMCBABwBgQIAOAMCBAAwBkQIACAMyBAAABnQIAAAM6AAIEe1GlzYZP/tTjYpIU3HtCxmQXgvECAAADOgACBPjSp/dR8TOF4Z5UWFhbMZEdLEj2t0gOzbvC9zQM9D0CIvBXDptPpnG9qlE8zvFnZtD0Vq1LeOi0vd5fRuj+grHPqr6eULZdPWwPKOtVidxllTsuNAfuK41Blme2W2m81yT7Y+2OOKSwL5/3Totm31nYmWif4XvLvTfQ4JlTnox7HrJ07Ix/HeKau1/J8//335hMAEskUqGbmFMtlaj2+Qe13F6iwb5YFmLIle71wGQApqLDHIk2lzjTNk/pP5Ip7UY5DyhOT7IO1r3obaZOJgKryt80+BmUOjmMidT7qcczauTPycYxnQgQEhkfugt3LqYiGdlZp5U6W/M4u5U1xhERAHuUaT+hGm9cpNaksn181xQAYMAgNRmLp5hPy12tUCAehF2h1J+UG/bVd6lSz5OV6lIPnGkRAAABnIAICADgDAgQAcAYECADgDAgQAMAZECAAgDMgQAAAZ0CAAADOGLsAxTOkBzykBgB4rhm7AMkTsp1OhyefipShckM+d+jJTaQjgovLZ3/P03u1b8zcxeGb2nuU//tnZm78OOiCHdODN6zoyHLYq79rLVdT5Cmj84vsssh/RqKu1Z26tV17PY2OzLqXA3A+viH/r3m6TR/SR8WXzbI6+Xwe/iM2rdKhOfcafJ77B/Z3Nqmhi5hjOuTzOFyP28fXpkRxsBmV8bSrehZ6W77tt6S+F2xXyqO//zW3BVlXvh98Tk56u0QvFz/iI7tN+b/6fKTjZ8oCJOKzQpXrLRMldcjPerTybmRlldmOylrbRJVHgTzladcs12VN8qxuXftOgRofROt592NmogBMgM/ofn6DDtcqVP/b62ZZQIZyHP2/z+fj+9wbuGKWBjwreXTJlK+t1+hzdS6L+KzQf7l96PW4jNvHntU+vv6ySbTum/XMQm4bf9rO0LNPo+81Pq3R4vZdypn5ABGcvb0Nus7rF64RXeYeS7SP0T5vWj2W1/9Wp8raIW3k7/MRj5cpC1CbGkdFKlsHl3+7SNRsh1FQ+86KiWIWaOWLstV1i0dOK3fa1P6ibcoY/lF2uUKFpTc3KGNtU9BdQ2RkgzHx+D7l87eJtupW5DM8i9s+rZlzMcdt4ESdy236jtvHH632IWXSPoIo6Fv+3uLVjJmLuHyzTFf2q2HE89V+fDuq7eUWtPg8vkGXzdJhkUiovkV0O5+n+4/NwjHgoAvWn1gEdNULu2jHOwXyqEytoIwVHwBnvHGL6vUPie5Oc+znmL7jAGjxD7awBOTp90EkdVClZ+ulRPTD0U21TItHFfrPCMMQaizoLtGH9TrdesMsHANTFiCuhOWa1XXiqOZejTLX3xromKeinWzGfK9OWxwB9aJ+3yNKbBNjQGD8vE636hVaO9w4x0Atd7u4DVx5W1yVMnSJ24fujgm6bJHPZRWxPH1I/+UI6fcm0k+Su1Um2tsi/16TP3e7NFHmBm1WsxwJReNBwyAD7BuHa1Sp3+IjHi9TFqAluvHYp2zYzVohL+vH7pDFumBieGXsPPNcuZn9ginzKLfNoalNWLZABYpvE4DJ8TIV/llXA7VniYRO+DzXA756zEfGY6R9rHH7WLTKGtw+1HiMDCrnPDqhGh2qsgU63NfbCQaM6dW36BUuf0Yb9FqvoYZru/S+EqFooLkfEvnIAHv9nwU+0vFzIfyAJLqR8aLOxymqD8CMIXfBPr/aig30DkQE6F6ua/xGtvXV23pAWUVMZhD7TNt2yMyNAQEARuRgS93kiQ8+zzYQIADmAek6pdy9yn3M0U/mAe1Kt6zUpFxjt+vW+ywDS1YAgDMQAQEAnAEBAgA4AwIEAHAGBAjMIJJ2EyUbg+GJ2eFYid4x5AWTvcqmzPgF6OkDWrUy1fXJtECbdqYuAKnoc2V1R556z6m3r85KQ5kH1PNwexthulLHPMSbpP5pjYofzMb7+hEBOUWyqd8j/39mduaY9v7Jk/Id8skjb58n/tSrEfXlfz69N4HM7bExkf2T9KQoc6AnHCB4+0Uq9UjnmDZOBCjm+2Nd4WS57ZwYn+/tB6Qx2fLzcsVUJ6FkU39Ehd+ZZfK0K+9/6P/CJ8tuzNMl8o1RPi72dxl5Kjbwc+nrMdOvLLbN1+nWv9bo8C8pGdCxMN7UvfWbdHs7DdOl0tspUJnK6zzxp+HWs5As9b8c0tq/orwlqRc77UDVXWBxIXUe2l3ouoinKPSrnz71qn67qCy2zd8V6COVWd4t7lJvmwf2uR4cv14W60nIbxCUH1SptpyjtlXvaS6kx48qRNt3rff5J3ooapvRurEunZrGm085dQGSA/KuWhnv1ytUSKmobvr7Ac0VYSMZMbOYT+5/J5JxpZEdNsvK50X7u9gPpInNQ+D1YnvTSAPq7z+jGkvfrG85gQOPp13rxI47GyTL0tER0JObGaImN2VloTLMepooY9sS9TPw9U6BGkdmRqHrR/KxgvqJPwzYo15FfHIVesXyA5L8rphhmGTT9xD3WslT25R6k/fv6/M8T3e3M1SzPH+kK5WxxeTIo0rQthplojuFhFjoKMm2w4kh4lMi8nn9WC7lOkeisk01jdfSZsoCdEwP99qJhNO4r49dVtg3CxXBVTZ9veDkHSlknyKSWdyzkWRytHjUoG/NbDrcKN7xaHG7TItmiZxYX+1zQ/ikh8/L0zadUJYudZ04g/1nNFbWt+2Mxyf8yoIWn/Em/8pvObzwBK6EvTK2f3s1Y/x2+qBEPUs52+bFZJ+v9cox7FWv7QadcAQX+P1oqwyiky8TF0xL3O1s+sy2HzZy8csKzvOlm2Uq7lfDiKjKXamYmCyXyQ/mX73BUWTbMvTjM2fHo9p6KbVeayVuV0p8zlLv58dBFyzyiQ4n6we2r5p+6PgmlXcx/IDEXU4bO6WMrfBJ82eO7IJsZ539HOc7uUrzFbnwplkwDNIgODz/rZk9O5bzn50VLSc8/w7tvYcsiy7RGem9XPsu3/Qp1yyE3aG9LiuXthb16i69ZpYMxXnrNeyG8znR5aiYRp5KQUQkXS5bTPjildYisqF3kFz8icppNh1MsSoe7jWqTvlm0ZQFaIky2TZ575x9nGawH5CJkMJxiRmmT/gdWWTyxGF0FOUINWrwVbr7iixX2DY1etjQKnvOwFMmxgD/GcFqJGnOfxneX2WrOwP1Hrn2JcVdbC6C7lCHricvXvueFvXkwKzYW8TqJ07PepVIlrcZeu5wdPU5R6ivvGlFK0N1w/mc5t+jqLyCNGJLI54/m/eacTF5NUNZjki3AgHhvxkbbD7YIi9b7tN9ytMun29NjoSmecd6QgJUowJfaXR3aYU87lfXSnqwLP9xi+MYCd2D8uEOeKAf0LwRht9nu8t0ha/SacmGOa5X+yqvB0T1IOlhlz1nQB//GQVHPkOMVeU/Nt7es2D4For7We4y9epmJeuHJzUIPaBeOZLVxl9mHY5kF6tPoi6ZiHqfsapoGEJ3bwOrYQWL4ga3rxr/+1ZMTCIBUevmKrTRCLpT3UKWCu/3k2Ab9jjgBJlOMiqr8WquQeUp9y8BmDfkLpjcpOk9phYN+g897iaDy/dy1JrB8VEHY0AAgJGRrtRRYvB5ENd2Z/bmzHQESEI7RD8AjI70IqRrVWpSOexazT/wAwIAOANdMACAMyBAAABnQIAAAM6AAAEA+mMSVPV0xuTgAYxfgGRnY0/FpmTxAgDmAytBVadIjfcO3MQjIJUAZz4DMM9IIvH03gN/Vibh3SRPUE/2tv9kBejpAyrcIcosR/PqWYbkFEZMJp+ra7mQ9APiyXpcPO4/0x0mal8TvBsejILOtpdXFIf5cBwZ9PZuklQN6/3r8t2wzKCWmVQNnmyrDuVX1KOst+dTH+8maXe8r3XL2yfm9xNrZ7oNqvKnD6lylCV6ZHkCjTlFY6ICVL/vUbbq04aZ1w8k6lBOMt3DzHf1lGb0iLkO9Ux+UeyAE5n0Jn9HxEfeBx8sF6+gQqxSARgVywlgqIz1JHXyS4k+gIiPeolglCBrJ8J++0WbFrltyPI1yxFCeT7xeR4l1TZZ6CwR7OfddORRQV5fzutpr6AtdZFWFh9HFXoYJs6K6NhPWtfIC9br+FTcL4x1OGVyAsSq6zXLdHdo68e2eq2s/Yi5eKGIN01/ITmmdpOFycoMXnpzgzJHDd5ixJIytxqvmRK44EjGei8ngKG8m0Q0CnSyXbZM4EwW/bZv+QXZHNN3TaLF0EYjQJZnKGed55f5PO/ehx7eTVQkP0i4lYTW5Sa1leiI0RmFvkHdjonWeuq7cVO08zIhAWrQ1jsV2vhkts3BAOiLZNb3iiiG8G6iR5vKpfLP4vA4NNpl8dLIdlc9vJv6IBdsHRFpz6CNwDZELD70pxiZq+Pz4pqMAB3VqNbXeyQNVvflwH5SkAGwGmWuvzVAxIzHkOWFI12/dsL5DWNAYDSsiMJyLRT6ezdxRH+Hu1kpLpXiOnnCDT42JhRwUKVnyxv0WlfbWaJLfJ7bnk8NPs9P+DwP7VkGeDeFSEKrbefBYlper1H13aRnULJNig+XJVBjYEIRULxLNBxiw+lT1vJC8bL+UJYDymOoGXgFLVCBrzqtVH8XAEZBOy5+SLfPdBesZzfr2q4evwmiJ55koFkNPpdqdOWDdGvdpOeT8gAPz/NB3k2WR5fcVk9kx8twR20/6RmUbJMFoup4hzGQjArARUfugg3y4wqf95lupv1E74IBAOYBM9wRG3yeDhAgAJ5j9PNzww93jBt0wQAAzkAEBABwBgQIAOAMCBAAwBkQIABAf+QWffAM0cz7AfHuJbPWg8xbAMCcET4fZBLA58MPyMpatzJvAZhn4Ac0fqbTBVuOXpwvzx3YEVHafBg9JS01En5C9no61ysos8JEtc6g+fRtKkz4CUfH5xn4AQXrzYkfUJu8nNlheUf1kFnxUhnyWlod6nWodb1ChUAQpBJz4i8UhIKd6MEp/jFXQs8SnqpEhWEqSm1T3qEdbFPnvUBsQAT8gObQD8jugm1QJRfPQo9evr9AhX2zkJX34V47VrZyh+f5x1CljyrUXvfjL+o31D/lH5grJlhvQX7wmI+QlYjHIhb6BLUbvE07+zdPJf7Bm19Ga6rX2vJxpP1dcMGBHxAzl35AFupg29Sw3MFCJ0SexBkxIuF4KNOQWe1FKzJSUyzblysxWM7qPz43E3ChgR/QnPoB2aiQjpV74D4bX5930q1Ulcvhvpfq5yMVUiuNcHuQr2KxbXKXzNvPxP1OOFyWyAndsucV+AHNoR9QYgyoMZyHiPL14apZkfXMFDZ88ZOuZqPt8hQMpIndqs8VGHazrLK+JLepxphg2wqSwA9Ityv4AQEAzoq62QI/IADATAI/IACAA+AHBAB4bkEEBABwBgQIAOAMCBAAwBkQIABAf8zDuHqaeT8gTSyrnSc8SQzAHBI+H2RSmWbfD0in86u3k4Y7jWROMP/AD2j8jF+ATDp/8lFvm7h3jxUdyROb1nLbpyTpG6S2EVpuJF0Yu8NE/TfxbngwCvADCtvWzPsBicWFZUCWhlhs6Iz4FpWXzUJBcrOsqMnPerQ1VNctT7vWeq3tppVAB8B5gB/QXPkBHX/ZNJ96cUxt/kq2y+9EiEcy4hUUePNIxnvgDdSNVu1gPdtHKEASVjsdJJqCMwA/IGbO/ICW/sAhG1dKL6lQNgU97Dnq/GPV1n2jtnGvoKWbPpWbkemYiEzA8U6BPIrGnFpcSQCcG/gBzaEf0LW73K2q9bZEPahSbdnyIgnRkVF4cMqbR3/UiDWAFpikyKhoJ5sxY07iWdItfxgDAqMBP6A58wMSoWjFohWZpN+oRED6w9wf1Z4/K+QdcS+zJOW83gfFyJI116CNISOZ/K0yZUJLVo9y20VTAsA4gB+Qbltz7gckAqTM42M2qzJ+wwf2CcZnAJgI8AMCAMwu8ryPGz8g2HEAcNHpEwHJ83XqzTRy8yfWM5kOECAAgDPQBQMAOAMCBABwBgQIAOAMCBAAwBkQIACAMyBAAABnQIAAAO6Q54BsOp3O+aZG+TTDm5VN21OxKuWt0/Jydxmt+wPKOqf+ekrZcvm0NaCsUy12l1HmtNwYsK84jpGPo+++Tv04JlTnox7HrJ07Ix/HeCY8iAgAcIcKeyzSVOpM0zyp/0SuuDiOiVxxRz6OCdX5qMcxa+fOyMcxngkREADAGRiEBgA4AwIEAHAGBAgA4AwIEADAGRAgAIAzIEAAAGdAgAAAzoAAAQCcAQECADgDAgQAcAYECADgDAgQAMAZECAAgDMgQAAAZ3QJ0AsvQJMAANOhS21efPFF8wkAACZLlwC99NJL5hMAAEyW1AgIIgQAmAZdlqwAADAtMOIMAHAGBAgA4Aii/wO9Iy7oAoEKIwAAAABJRU5ErkJggg==" + } + }, + "cell_type": "markdown", + "id": "72120792", + "metadata": {}, + "source": [ + "## 19_Украшение чека\n", + "\n", + "- Давайте приведём в порядок чек, который печатали ранее.\n", + "- Все строки должны быть длиной в 35 символов.\n", + "- Напишите программу, которая выводит красиво оформленный чек. Все строки в чеке должны быть длиной ровно 35 символов, текст выровнен в соответствии с примером.\n", + "- Формат ввода\n", + "- Название товара (строка);\n", + "- цена товара (натуральное число);\n", + "- вес товара (натуральное число);\n", + "- количество денег у пользователя (натуральное число).\n", + "- Формат вывода\n", + "- Красивый чек в формате:\n", + "\n", + "![image.png](attachment:image.png)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3b555948", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "================Чек================\n", + "Товар: манго\n", + "Цена: 43кг * 187руб/кг\n", + "Итого: 8041руб\n", + "Внесено: 8041руб\n", + "Сдача: 0руб\n", + "===================================\n" + ] + } + ], + "source": [ + "def check_decoration() -> None:\n", + " \"\"\"check_decoration.\"\"\"\n", + " name: str = input()\n", + " price: int = int(input())\n", + " weight: int = int(input())\n", + " money: int = int(input())\n", + "\n", + " value: str = \"Чек\"\n", + " valu_2: str = \"\"\n", + " price_1: str = str(weight) + \"кг * \" + str(price) + \"руб/кг\"\n", + " total: int = weight * price\n", + " change: int = money - total\n", + "\n", + " print(f\"{value:=^35}\")\n", + " print(f\"Товар:{name:>29}\")\n", + " print(f\"Цена:{price_1:>30}\")\n", + " print(f\"Итого:{total:>26}руб\")\n", + " print(f\"Внесено:{money:>24}руб\")\n", + " print(f\"Сдача:{change:>26}руб\")\n", + " print(f\"{valu_2:=^35}\")\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " check_decoration()" + ] + }, + { + "cell_type": "markdown", + "id": "3d29ee90", + "metadata": {}, + "source": [ + "## 20_Мухи отдельно, котлеты отдельно\n", + "\n", + "- Вернёмся в магазин, хозяин которого уже привык полагаться на всемогущую автоматизацию.\n", + "Помогите ему разобраться с одной проблемой. Далее его история: «Пару дней назад я купил две партии котлет и по случайности высыпал их на один прилавок. Общий вес котлет составил N килограмм, а ценник — M рублей за килограмм.\n", + "Сегодня я обнаружил, что накладные на эти виды котлет потерялись, но я помню, что первый вид котлет стоил K1 рублей за килограмм, а второй — \n", + "K2. Помогите мне вспомнить вес каждой партии котлет, чтобы поставить их на учёт.\n", + "- Формат ввода\n", + "- В первой строке записано натуральное число N\n", + "- Во второй строке — натуральное число M\n", + "- В третьей строке — натуральное число K1\n", + "- В четвёртой строке — натуральное число K2​\n", + "- Причём доподлинно известно, что второй вид котлет стоит меньше, чем первый.\n", + "- Формат вывода\n", + "- Два натуральных числа, записанных через пробел — вес обеих партий котлет." + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "id": "e6f4a868", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "24 8\n" + ] + } + ], + "source": [ + "def separation() -> None:\n", + " \"\"\"separation.\"\"\"\n", + " n_nat: int = int(input())\n", + " m_nat: int = int(input())\n", + " k_1: int = int(input())\n", + " k_2: int = int(input())\n", + "\n", + " x_nat: int = ((m_nat * n_nat) - (k_2 * n_nat)) // (k_1 - k_2)\n", + " y_nat: int = n_nat - x_nat\n", + "\n", + " print(x_nat, y_nat)\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " separation()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e5f27139", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.12" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/python/yandex/basic_python_constructs_2_1.py b/python/yandex/basic_python_constructs_2_1.py new file mode 100644 index 00000000..4a32add4 --- /dev/null +++ b/python/yandex/basic_python_constructs_2_1.py @@ -0,0 +1,594 @@ +"""2.1.Ввод и вывод данных. + +Операции с числами, строками. + +Форматирование. +""" + +# ## 1_"Привет, Яндекс!" +# +# - Начнём с задачи, которая поможет вам закрепить навык работы с базовым синтаксисом Python для вывода текста. +# - Начнём с простого. Напишите программу, которая выведет текст: Привет, Яндекс!. +# - Формат ввода +# - Ввод не требуется. +# - Формат вывода +# - Выведите одну строку:"Привет, Яндекс!" + + +# + +def greet() -> None: + """greet.""" + print("Привет, Яндекс!") + + +greet() + + +# - + +# ## 2_"Привет, всем!" +# +# - Предлагаем решить следующую задачу, которая поможет вам научиться работать с функцией input() для ввода данных и форматирования строк для вывода результата. +# - Для этого напишите диалоговую программу, которая сначала спросит имя пользователя, а затем поприветствует его. +# - Формат ввода +# - Одна строка — имя пользователя программы. +# - Формат вывода: +# - Первая строка: вопрос «Как Вас зовут?» +# - Вторая строка: приветствие пользователя в формате «Привет, <имя пользователя>», где <имя пользователя> — это строка, введённая пользователем. + + +# + +def hi_all() -> None: + """hi_all.""" + name: str = input() + print("Как Вас зовут?") + print("Привет,", name) + + +if __name__ == "__main__": + hi_all() + + +# - + +# ## 3_Излишняя автоматизация +# +# - Вы создадите программу, которая принимает одну строку и выводит её трижды, каждая строка на новой строке. +# - Формат ввода +# - Одна строка — весьма полезная информация. +# - Формат вывода +# - Трижды повторённая весьма полезная информация. + + +# + +def auto() -> None: + """auto.""" + test_number: str = input() + print(test_number) + print(test_number) + print(test_number) + + +if __name__ == "__main__": + auto() + + +# - + +# ## 4_Сдача +# +# - Возьмём простую задачу из школьной математики. Покупатель купил 2.5 кг черешни по цене 38 руб/кг. +# - Сколько сдачи он получит? Вычислите стоимость покупки, а затем найдите разность между номиналом купюры и этой стоимостью. +# - Формат ввода +# - Одно натуральное число - номинал купюры пользователя (≥100≥100). +# - Формат вывода +# - Одно натуральное число — размер сдачи. +# - Примечание +# - Используйте стандартные арифметические операции. Ответ всегда будет натуральным числом, так как номинал купюры больше стоимости покупки. + + +# + +def local_change() -> None: + """local_change.""" + money: int = int(input()) + count: int = int(2.5 * 38) + price: int = money - count + print(price) + + +if __name__ == "__main__": + local_change() + + +# - + +# ## 5_Магазин +# +# - Теперь надо определить, какую сдачу нужно выдать покупателю за покупку товара. Стоимость покупки вычисляется как произведение цены на вес товара. +# - Формат ввода +# - Три натуральных числа: +# - цена товара за единицу веса; +# - вес товара; +# - количество денег у покупателя. +# - Формат вывода +# - Одно целое число — сдача, которую требуется отдать пользователю. +# - Примечание +# - Предполагается, что у покупателя достаточно денег для оплаты покупки. + + +# + +def local_shop() -> None: + """local_shop.""" + price: int = int(input()) + weight: int = int(input()) + money: int = int(input()) + buy: int = money - (price * weight) + print(buy) + + +if __name__ == "__main__": + local_shop() + + +# - + +# ## 6_Чек +# +# - Напишите программу, которая рассчитывает стоимость покупки и печатает чек в заданном формате. Итоговая стоимость вычисляется как произведение цены за килограмм и веса товара. Гарантируется, что у покупателя достаточно денег для покупки. +# - Формат ввода +# - Четыре строки: +# - название товара (строка); +# - цена товара за килограмм (натуральное число); +# - вес товара (натуральное число); +# - количество денег у пользователя (натуральное число). +# + + +# + +def check() -> None: + """check.""" + name_product: str = input() + price: int = int(input()) + weight: int = int(input()) + money: int = int(input()) + sale: int = price * weight + buy: int = money - sale + print("Чек") + print(f"{name_product} - {weight}кг - {price}руб/кг") + print(f"Итого: {sale}руб") + print(f"Внесено: {money}руб") + print(f"Сдача: {buy}руб") + + +if __name__ == "__main__": + check() + + +# - + +# ## 7_Делу — время, потехе — час +# +# - Напишите программу, которая N раз выводит строку «Купи слона!». +# - Формат ввода +# - Одно натуральное число N +# - Формат вывода +# - N строк с фразой: "Купи слона!" + + +# + +def buy_elephant() -> None: + """buy_elephant.""" + num: int = int(input()) + print("Купи слона!\n" * num) + + +if __name__ == "__main__": + buy_elephant() + + +# - + +# ## 8_Наказание +# +# - Напишите программу, которая выводит N строк наказания. Каждая строка должна содержать текст в указанном формате, включающий часть наказания, введённую пользователем. +# - Формат ввода +# - Первая строка – натуральное число N ≥ 1 – количество строк наказания. +# - Вторая строка – текст, являющийся частью наказания. +# - Формат вывода +# - N строк вида: "Я больше никогда не буду писать "<часть наказания>"!" + + +# + +def punishment() -> None: + """punishment.""" + number: int = int(input()) + word: str = input() + print(f'Я больше никогда не буду писать "{word}"!\n' * number) + + +if __name__ == "__main__": + punishment() + + +# - + +# ## 9_Деловая колбаса +# +# - В детском саду 2 ребенка вместе съедают 2 куска колбасы за 2 минуты. +# - Напишите программу, которая вычисляет, сколько кусков колбасы съедят N детей за M минут. +# - Формат ввода +# - В первой строке записано натуральное число N ≥ 1 +# - Во второй строке записано натуральное число M ≥ 1 +# - Формат вывода +# - Одно натуральное число — количество кусков колбасы, съеденных детьми. + + +# + +def eat_time() -> None: + """eat_time.""" + children = int(input()) + eat = int(input()) + time = int((children * eat) / 2) + print(time) + + +if __name__ == "__main__": + eat_time() + + +# - + +# ## 10_Детский сад — штаны на лямках +# +# - Напишите программу, которая формирует карточку для личного дела ребёнка. Карточка создаётся на основе имени ребёнка и трёхзначного номера шкафчика, который содержит: +# - Первую цифру — номер группы. Вторую цифру — номер кроватки. Третью цифру — порядковый номер ребёнка в списке группы. +# - Формат ввода +# - В первой строке записано имя ребенка. +# - Во второй строке записан номер шкафчика. +# - Формат вывода +# - Карточка в виде: +# Группа №<номер группы>. +# <номер ребёнка в списке>. <имя ребенка>. +# Шкафчик: <номер шкафчика>. +# Кроватка: <номер кроватки>. + + +# + +def kindergarten() -> None: + """kindergarten.""" + name: str = input() + number: int = int(input()) + number_group: int = number // 100 + number_bed: int = number // 10 % 10 + child: int = number % 10 + print(f"Группа №{number_group}.") + print(f"{child}. {name}.") + print(f"Шкафчик: {number}.") + print(f"Кроватка: {number_bed}.") + + +if __name__ == "__main__": + kindergarten() + + +# - + +# ## 11_Автоматизация игры +# +# - Итак, в этой задаче вы научитесь работать с числовыми данными и формировать числа при помощи математических операций. +# - Напишите программу для робота-няни, которая из числа вида abcd составляет число badc. +# - Формат ввода +# - Одно четырёхзначное число. +# - Формат вывода +# - Одно четырёхзначное число — результат перестановки. + + +# + +def auto_game() -> None: + """auto_game.""" + number: int = int(input()) + numb_one: int = number // 1000 + numb_two: int = number // 100 % 10 + numb_three: int = number % 100 // 10 + numb_four: int = number % 10 + print(f"{numb_one}{numb_two}{numb_three}{numb_four}") + + +if __name__ == "__main__": + auto_game() + + +# - + +# ## 12_Интересное сложение +# +# - Один малыш из детского сада услышал от старшей сестры о некоем действии с числами — сложении. +# И как это часто бывает — он не до конца разобрался, как работает сложение. Например, не совсем понял, как произвести перенос разряда. +# - Напишите программу, которая складывает два числа поразрядно без учёта переносов. Каждая пара цифр суммируется независимо, и результат записывается в соответствующий разряд. +# - Формат ввода +# - В первой строке записано натуральное число меньше 1000. +# - Во второй строке записано натуральное число меньше 1000. +# - Формат вывода +# - Одно число — результат сложения введённых чисел без учёта переносов. + + +# + +def interesting_offer() -> None: + """interesting_offer.""" + first_number: int = int(input()) + second_number: int = int(input()) + + first_count_number_one: int = first_number // 100 + first_count_number_two: int = first_number // 10 % 10 + first_count_number_three: int = first_number % 10 + + second_count_number_one: int = second_number // 100 + second_count_number_two: int = second_number // 10 % 10 + second_count_number_three: int = second_number % 10 + + add_first_numbers: int = (first_count_number_one + second_count_number_one) % 10 + add_second_numbers: int = (first_count_number_two + second_count_number_two) % 10 + add_third_numbers: int = (first_count_number_three + second_count_number_three) % 10 + + my_namber: int = int( + str(add_first_numbers) + str(add_second_numbers) + str(add_third_numbers) + ) + + print(my_namber) + + +if __name__ == "__main__": + interesting_offer() + + +# - + +# ## 13_Дед Мороз и конфеты +# +# - Настало самое главное событие в детском саду — новогодний утренник.Хорошо замаскированная робоняня в роли Деда Мороза решила раздать детям конфеты так, чтобы каждому досталось поровну. +# - Напишите программу для робоняни, которая поможет раздать конфеты детям на новогоднем утреннике. Конфеты должны быть разделены поровну между всеми детьми, а оставшиеся конфеты останутся у Деда Мороза. +# - Формат ввода +# - В первой строке указано натуральное число N — количество детей на утреннике (N ≥ 1). +# - Во второй строке указано натуральное число M — количество конфет в конфетном отсеке робоняни (M ≥ 1). +# - Формат вывода +# - Выведите два числа, каждое с новой строки: +# - Количество конфет, которое получит каждый ребёнок. +# - Количество конфет, которые останутся в отсеке. + + +# + +def santa_candy() -> None: + """Santa_candy.""" + children: int = int(input()) + candies: int = int(input()) + count_candies: int = candies // children + leftover_candy: int = candies % children + print(count_candies) + print(leftover_candy) + + +if __name__ == "__main__": + santa_candy() + + +# - + +# ## 14_Шарики и ручки +# +# - В группе детского сада проводится игра с шариками трёх цветов: красного, зелёного и синего. Каждый ребёнок по очереди вытаскивает один шарик из ящика. Победителем становится тот, кто первым вытащит зелёный шарик. +# - Напишите программу, которая определяет максимальное количество ходов, которое потребуется, чтобы найти зелёный шарик. +# - Формат ввода +# - Три натуральных числа, каждое на новой строке: +# - Количество красных шариков. +# - Количество зелёных шариков. +# - Количество синих шариков. +# - Формат вывода +# - Одно число — максимальное количество ходов, которое потребуется для определения победителя. + + +# + +def balls_pens() -> None: + """balls_pens.""" + red_ball: int = int(input()) + green_ball: int = int(input()) * 0 + blue_ball: int = int(input()) + count_ball: int = red_ball + blue_ball + 1 + green_ball + print(count_ball) + + +if __name__ == "__main__": + balls_pens() + + +# - + +# ## 15_В ожидании доставки +# +# - Сегодня в N часов M минут владелец магазина заказал доставку нового товара.Оператор сообщил, что продукты доставят через T минут. Сколько будет времени на электронных часах, когда привезут долгожданные продукты? +# - Формат ввода +# - В первой строке записано натуральное число N (0 ≤ N < 24). +# - Во второй строке записано натуральное число M (0 ≤ M < 60). +# - В третьей строке записано натуральное число T (30 ≤ T < 10^9). +# - Формат вывода +# - Одна строка, представляющая циферблат электронных часов. + + +# + +def expectation_delivery() -> None: + """expectation_delivery.""" + hours: int = int(input()) + minutes: int = int(input()) + delivery_time: int = int(input()) + + total_minutes: int = hours * 60 + minutes + delivery_time + hours_time: int = (total_minutes // 60) % 24 + minutes_time: int = total_minutes % 60 + print(f"{hours_time:02d}:{minutes_time:02d}") + + +if __name__ == "__main__": + expectation_delivery() + + +# - + +# ## 16_Доставка +# +# - Продолжаем тренироваться работать с вычислением времени. Продуктовый склад и магазин находятся на одной дороге города Н. Склад находится на отметке A км, а магазин — B км. Средняя скорость автомобиля, доставляющего товары, C км/ч. +# За какое время продукты попадают со склада в магазин? +# - Формат ввода +# - Три натуральных числа A, B и C, каждое на отдельной строке. +# - Формат вывода +# - Одно рациональное число с точностью до сотых. + + +# + +def delivery() -> None: + """delivery.""" + warehouse: int = int(input()) + shop: int = int(input()) + car_speed: int = int(input()) + + distance: float = abs(shop - warehouse) + time: float = distance / car_speed + print(round(time, 2)) + + +if __name__ == "__main__": + delivery() + + +# - + +# ## 17_Ошибка кассового аппарата +# +# - Мы уже помогали магазину с расчётами и формированием чеков, но сегодня кассовый аппарат вместо привычных продавцу десятичных чисел начал выдавать двоичные.Техподдержка приедет только завтра, а магазин должен продолжать работать. Надо помочь. +# - Напишите программу, которая поможет магазину посчитать общую сумму выручки, учитывая, что кассовый аппарат выдаёт сумму последней покупки в двоичной системе счисления. +# - Формат ввода +# - В первой строке записано десятичное число — общая сумма купленных в магазине товаров на данный момент. +# - Во второй строке указано двоичное число — сумма за последнюю покупку. +# - Формат вывода +# - Одно десятичное число — сумма прибыли за день с учётом последней покупки. + + +# + +def error() -> None: + """error.""" + all_sum: int = int(input()) + last_buy: str = input() + conversion_decimal: int = int(last_buy, 2) + total_sum: int = all_sum + conversion_decimal + print(total_sum) + + +if __name__ == "__main__": + error() + + +# - + +# ## 18_Сдача 10 +# +# - Как насчет того, чтобы научиться конвертировать числа из двоичной в десятичную систему?Продолжаем работать с задачей. Кстати, несмотря на ошибку аппарата, сдачу тоже нужно отдавать. +# - Формат ввода +# - Цена покупки — двоичное число, выданное кассовым аппаратом. +# - Номинал купюры пользователя — десятичное число ( ≥ 100). +# - Формат вывода +# - Одно десятичное число — сдача, которую требуется отдать пользователю. +# - Примечание +# - Все числа, используемые в задаче, целые. + + +# + +def change_2() -> None: + """change_2.""" + last_buy: str = input() + money: int = int(input()) + conversion_decimal: int = int(last_buy, 2) + change: int = money - conversion_decimal + print(change) + + +if __name__ == "__main__": + change_2() + + +# - + +# ## 19_Украшение чека +# +# - Давайте приведём в порядок чек, который печатали ранее. +# - Все строки должны быть длиной в 35 символов. +# - Напишите программу, которая выводит красиво оформленный чек. Все строки в чеке должны быть длиной ровно 35 символов, текст выровнен в соответствии с примером. +# - Формат ввода +# - Название товара (строка); +# - цена товара (натуральное число); +# - вес товара (натуральное число); +# - количество денег у пользователя (натуральное число). +# - Формат вывода +# - Красивый чек в формате: +# +# ![image.png](attachment:image.png) + + +# + +def check_decoration() -> None: + """check_decoration.""" + name: str = input() + price: int = int(input()) + weight: int = int(input()) + money: int = int(input()) + + value: str = "Чек" + valu_2: str = "" + price_1: str = str(weight) + "кг * " + str(price) + "руб/кг" + total: int = weight * price + change: int = money - total + + print(f"{value:=^35}") + print(f"Товар:{name:>29}") + print(f"Цена:{price_1:>30}") + print(f"Итого:{total:>26}руб") + print(f"Внесено:{money:>24}руб") + print(f"Сдача:{change:>26}руб") + print(f"{valu_2:=^35}") + + +if __name__ == "__main__": + check_decoration() + + +# - + +# ## 20_Мухи отдельно, котлеты отдельно +# +# - Вернёмся в магазин, хозяин которого уже привык полагаться на всемогущую автоматизацию. +# Помогите ему разобраться с одной проблемой. Далее его история: «Пару дней назад я купил две партии котлет и по случайности высыпал их на один прилавок. Общий вес котлет составил N килограмм, а ценник — M рублей за килограмм. +# Сегодня я обнаружил, что накладные на эти виды котлет потерялись, но я помню, что первый вид котлет стоил K1 рублей за килограмм, а второй — +# K2. Помогите мне вспомнить вес каждой партии котлет, чтобы поставить их на учёт. +# - Формат ввода +# - В первой строке записано натуральное число N +# - Во второй строке — натуральное число M +# - В третьей строке — натуральное число K1 +# - В четвёртой строке — натуральное число K2​ +# - Причём доподлинно известно, что второй вид котлет стоит меньше, чем первый. +# - Формат вывода +# - Два натуральных числа, записанных через пробел — вес обеих партий котлет. + + +# + +def separation() -> None: + """separation.""" + n_nat: int = int(input()) + m_nat: int = int(input()) + k_1: int = int(input()) + k_2: int = int(input()) + + x_nat: int = ((m_nat * n_nat) - (k_2 * n_nat)) // (k_1 - k_2) + y_nat: int = n_nat - x_nat + + print(x_nat, y_nat) + + +if __name__ == "__main__": + separation() diff --git a/python/yandex/conditional_operator_2_2.ipynb b/python/yandex/conditional_operator_2_2.ipynb new file mode 100644 index 00000000..544a59a0 --- /dev/null +++ b/python/yandex/conditional_operator_2_2.ipynb @@ -0,0 +1,1145 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "id": "8a65ae6f", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'2.2. Условный оператор.\\n\\nВ этом параграфе мы научимся управлять поведением программы: выполнять одни действия в одних ситуациях и другие — в других. Вы узнаете, как Python принимает решения с помощью условных конструкций, как работают логические выражения, и как применять их на практике. Мы также разберём новые конструкции вроде match-case и полезные встроенные функции.\\n'" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\"\"\"2.2. Условный оператор.\n", + "\n", + "В этом параграфе мы научимся управлять поведением программы: выполнять\n", + "одни действия в одних ситуациях и другие — в других. Вы узнаете, как\n", + "Python принимает решения с помощью условных конструкций, как работают\n", + "логические выражения, и как применять их на практике.\n", + "Мы также разберём новые конструкции вроде match-case и\n", + "полезные встроенные функции.\n", + "\"\"\"" + ] + }, + { + "cell_type": "markdown", + "id": "a7f3d549", + "metadata": {}, + "source": [ + "## 1.Просто здравствуй, просто как дела\n", + "- Ура, вы снова здесь! Это значит, что мы начинаем вторую часть вашей практики.\n", + "- На этот раз вы будете тренировать навык работы с условным оператором if-else.\n", + "- Вы уже знаете, как написать программу, которая знакомится с человеком и спрашивает его имя.\n", + "- Теперь напишите программу, которая сначала познакомится с пользователем, а затем \n", + "поинтересуется его настроением.\n", + "- Формат ввода\n", + "- В первой строке записано имя пользователя.\n", + "- Во второй — ответ на вопрос: «хорошо» или «плохо».\n", + "- Формат вывода\n", + "- В первой строке должен быть вопрос «Как Вас зовут?»\n", + "- Во второй строке — «Здравствуйте, %username%!»\n", + "- В третьей строке — вопрос «Как дела?»\n", + "- В четвёртой строке реакция на ответ пользователя:\n", + "- если пользователь ответил «хорошо», следует вывести сообщение «Я за Вас рада!»;\n", + "- если пользователь ответил «плохо», следует вывести сообщение «Всё наладится!»." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8e1b5724", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Как Вас зовут?\n", + "Здравствуйте, Mark!\n", + "Как дела?\n", + "Я за Вас рада!\n" + ] + } + ], + "source": [ + "def simple_hi() -> None:\n", + " \"\"\"simple_hi.\"\"\"\n", + " print(\"Как Вас зовут?\")\n", + " name: str = input()\n", + " print(f\"Здравствуйте, {name}!\")\n", + " print(\"Как дела?\")\n", + " mood: str = input()\n", + " if mood == \"хорошо\":\n", + " print(\"Я за Вас рада!\")\n", + " elif mood == \"плохо\":\n", + " print(\"Всё наладится!\")\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " simple_hi()" + ] + }, + { + "cell_type": "markdown", + "id": "b0ba6e09", + "metadata": {}, + "source": [ + "## 2.Кто быстрее?\n", + "- Продолжаем работать с условным оператором if-else.\n", + "- В главной велогонке года участвуют более тысячи гонщиков, которые должны пройти трассу длиной 43872 метра. Задача — определить победителя.\n", + "- Нам известны средние скорости двух фаворитов — Пети и Васи. Помогите узнать, кто из них пришёл к финишу первым.\n", + "- Формат ввода\n", + "- В первой строке записана средняя скорость Пети.\n", + "- Во второй — Васи.\n", + "- Формат вывода\n", + "- Имя победителя гонки.\n", + "- Примечание\n", + "- Гарантируется, что победителем стал только один." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "cf70b07c", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Вася\n" + ] + } + ], + "source": [ + "def who_is_faster() -> None:\n", + " \"\"\"who_is_faster.\"\"\"\n", + " petr_speed: float = float(input())\n", + " vasya_speed: float = float(input())\n", + "\n", + " if petr_speed > vasya_speed:\n", + " print(\"Петя\")\n", + " else:\n", + " print(\"Вася\")\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " who_is_faster()" + ] + }, + { + "cell_type": "markdown", + "id": "5fbd36c0", + "metadata": {}, + "source": [ + "## 3.Кто быстрее на этот раз?\n", + "- Давайте немного усложним задачу и поработаем с вложенными условными операторами if-else или оператором if-elif-else.\n", + "- Три велогонщика снова хотят узнать, кто из них быстрее. Им предстоит пройти трассу длиной 43872 метра, и нам нужно определить, кто из них - пришёл к финишу первым.\n", + "- Нам известны средние скорости трёх фаворитов — Пети, Васи и Толи. Кто из них финишировал первым?\n", + "- Формат ввода\n", + "- В первой строке записана средняя скорость Пети.\n", + "- Во второй — Васи.\n", + "- В третьей — Толи.\n", + "- Формат вывода\n", + "- Имя победителя гонки.\n", + "- Примечание\n", + "- Гарантируется, что победителем стал только один." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d7129d30", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Петя\n" + ] + } + ], + "source": [ + "def who_is_faster_now() -> None:\n", + " \"\"\"who_is_faster_now.\"\"\"\n", + " petr_speed: float = float(input())\n", + " vasya_speed: float = float(input())\n", + " tolya_speed: float = float(input())\n", + " if petr_speed > vasya_speed > tolya_speed:\n", + " print(\"Петя\")\n", + " elif vasya_speed > petr_speed > tolya_speed:\n", + " print(\"Вася\")\n", + " else:\n", + " print(\"Толя\")\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " who_is_faster_now()" + ] + }, + { + "cell_type": "markdown", + "id": "e51a0aee", + "metadata": {}, + "source": [ + "## 4.Список победителей\n", + "- В этой задаче вы продолжите работать с операторами, но добавим к этому наивную сортировку данных.\n", + "- Время подвести итоги гонки и объявить победителя!\n", + "- Длина трассы — 43872 метра, и нам известны средние скорости трёх фаворитов: Пети, Васи и Толи.\n", + "- Ваша задача — сравнить результаты гонщиков и вывести имя победителя.\n", + "- Формат ввода\n", + "- В первой строке записана средняя скорость Пети.\n", + "- Во второй — Васи.\n", + "- В третьей — Толи.\n", + "- Формат вывода\n", + "- Имена победителей в порядке занятых мест." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "98cd2e71", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1. Толя\n", + "2. Вася\n", + "3. Петя\n" + ] + } + ], + "source": [ + "def list_winners() -> None:\n", + " \"\"\"list_winners.\"\"\"\n", + " petr_speed: float = float(input())\n", + " vasya_speed: float = float(input())\n", + " tolya_speed: float = float(input())\n", + " if petr_speed > vasya_speed > tolya_speed:\n", + " print(\"1. Петя\\n2. Вася\\n3. Толя\")\n", + " elif petr_speed > tolya_speed > vasya_speed:\n", + " print(\"1. Петя\\n2. Толя\\n3. Вася\")\n", + " elif vasya_speed > petr_speed > tolya_speed:\n", + " print(\"1. Вася\\n2. Петя\\n3. Толя\")\n", + " elif vasya_speed > tolya_speed > petr_speed:\n", + " print(\"1. Вася\\n2. Толя\\n3. Петя\")\n", + " elif tolya_speed > petr_speed > vasya_speed:\n", + " print(\"1. Толя\\n2. Петя\\n3. Вася\")\n", + " else:\n", + " print(\"1. Толя\\n2. Вася\\n3. Петя\")\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " list_winners()" + ] + }, + { + "cell_type": "markdown", + "id": "ec9dae49", + "metadata": {}, + "source": [ + "## 5.Яблоки\n", + "- Как насчет небольшой головоломки с применением условного оператора?\n", + "- У Пети было 7 яблок, а у Васи 6.\n", + "- Затем Петя отдал 3 яблока Васе, а у Толи взял 2 яблока.\n", + "- Вася попросил у Толи 5 яблок, но отдал Гене 2.\n", + "- Затем Дима дал Пете N яблок, а Васе M.\n", + "- Так у кого в итоге яблок больше — у Пети или Васи?\n", + "- Формат ввода\n", + "- В первой строке записано натуральное число N.Во второй — M.\n", + "- Формат вывода\n", + "- Имя ребёнка, у которого больше яблок." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "49f3d656", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Вася\n" + ] + } + ], + "source": [ + "def apples() -> None:\n", + " \"\"\"apples.\"\"\"\n", + " petr_apple: int = 7\n", + " vasya_apple: int = 6\n", + " n_apple: int = int(input())\n", + " m_apple: int = int(input())\n", + " petr_apple -= 3\n", + " vasya_apple += 3\n", + " petr_apple += 2\n", + " vasya_apple += 5\n", + " vasya_apple -= 2\n", + " petr_apple += n_apple\n", + " vasya_apple += m_apple\n", + " if petr_apple > vasya_apple:\n", + " print(\"Петя\")\n", + " else:\n", + " print(\"Вася\")\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " apples()" + ] + }, + { + "cell_type": "markdown", + "id": "dbc16d54", + "metadata": {}, + "source": [ + "## 6.Сила прокрастинации\n", + "- Вася любит полениться. Особенно ему нравится, когда в году появляется такой лишний денёк, которого обычно не бывает.\n", + "- Напишите программу, которая поможет Васе определить, удастся ли ему побездельничать в определённом году или нет.\n", + "- Формат ввода\n", + "- Одно число — год.\n", + "- Формат вывода\n", + "- Одно слово «YES» (удастся) или «NO» (не удастся)." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "9f24d8fb", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "YES\n" + ] + } + ], + "source": [ + "def power_of_procrastination() -> None:\n", + " \"\"\"power_of_procrastination.\"\"\"\n", + " year: int = int(input())\n", + " if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):\n", + " print(\"YES\")\n", + " else:\n", + " print(\"NO\")\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " power_of_procrastination()" + ] + }, + { + "cell_type": "markdown", + "id": "7d35b057", + "metadata": {}, + "source": [ + "## 7.А роза упала на лапу Азора\n", + "- Новый день - новое знание! А вы знали, что есть такое понятие как \"палиндром\"?\n", + "- Палиндром - это число, слово, предложение и так далее, которое и слева-направо, и справа-налево читается одинаково.\n", + "- А как быстро понять, является ли слово палиндромом? Написать программу для проверки этого! В этом нам снова поможет условный оператор.\n", + "- Формат ввода\n", + "- Одно четырёхзначное число\n", + "- Формат вывода\n", + "- YES если число является палиндромом, иначе — NO." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "f1434eb4", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "YES\n" + ] + } + ], + "source": [ + "def polindrom_numb() -> None:\n", + " \"\"\"polindrom_numb.\"\"\"\n", + " polindrom: int = int(input())\n", + " num_1: int = polindrom // 1000\n", + " num_2: int = (polindrom // 100) % 10\n", + " num_3: int = (polindrom // 10) % 10\n", + " num_4: int = polindrom % 10\n", + " if num_1 == num_4 and num_2 == num_3:\n", + " print(\"YES\")\n", + " else:\n", + " print(\"NO\")\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " polindrom_numb()" + ] + }, + { + "cell_type": "markdown", + "id": "dd978ce0", + "metadata": {}, + "source": [ + "## 8.Зайка — 1\n", + "- В долгих поездках дети могут заскучать, поэтому родители развлекают их различными играми. Одна из таких игр — искать зверушек в придорожной растительности.\n", + "- Давайте сыграем! С помощью условного оператора if-else и оператора in проверим, не спрятался ли зайка в введённом предложении\n", + "- Формат ввода\n", + "- Строка описывающая придорожную местность.\n", + "- Формат вывода\n", + "- YES — если в этой местности есть зайка, иначе — NO." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "84bdbd29", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "NO\n" + ] + } + ], + "source": [ + "def search_hare() -> None:\n", + " \"\"\"search_hare.\"\"\"\n", + " text: str = input()\n", + " if \"зайка\" in text:\n", + " print(\"YES\")\n", + " else:\n", + " print(\"NO\")\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " search_hare()" + ] + }, + { + "cell_type": "markdown", + "id": "7518c210", + "metadata": {}, + "source": [ + "## 9.Первому игроку приготовиться\n", + "- Кто пойдёт первым? В настольных играх очередность часто определяется жребием, но мы будем использовать порядок букв!\n", + "- Давайте сравним имена игроков лексикографически и с помощью условных операторов определим, кто начнёт игру.\n", + "- Формат ввода\n", + "- Три имени игроков, каждое из которых записано с новой строки.\n", + "- Формат вывода\n", + "- Имя игрока, который будет ходить первым." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "030c3849", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Аня\n" + ] + } + ], + "source": [ + "def first_player() -> None:\n", + " \"\"\"first_player.\"\"\"\n", + " name_1: str = input()\n", + " name_2: str = input()\n", + " name_3: str = input()\n", + " if name_1 < name_2 and name_1 < name_3:\n", + " print(name_1)\n", + " elif name_2 < name_1 and name_2 < name_3:\n", + " print(name_2)\n", + " else:\n", + " print(name_3)\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " first_player()" + ] + }, + { + "cell_type": "markdown", + "id": "a27a280b", + "metadata": {}, + "source": [ + "## 10.Лучшая защита — шифрование\n", + "- Коля решил зашифровать свои пароли, чтобы Аня не смогла их подсмотреть в блокноте. Для этого он берёт изначальный пароль — трёхзначное число — и превращает его в новое, следуя таким правилам:\n", + "- Сначала находит сумму двух младших цифр (десятков и единиц).\n", + "- Затем находит сумму двух старших цифр (сотен и десятков).\n", + "- Эти суммы записываются в порядке не возрастания, образуя зашифрованное число.\n", + "- Помогите реализовать алгоритм шифрования, используя базовое применение условного оператора if-else.\n", + "- Формат ввода\n", + "- Одно трёхзначное число\n", + "- Формат вывода\n", + "- Результат шифрования" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "e7ae6b6a", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "53\n" + ] + } + ], + "source": [ + "def encryption_protection() -> None:\n", + " \"\"\"encryption_protection.\"\"\"\n", + " code: int = int(input())\n", + " junior_numb: int = (code // 10) % 10 + (code % 10)\n", + " senior_numb: int = (code // 10) % 10 + (code // 100)\n", + " if junior_numb > senior_numb:\n", + " print(str(junior_numb) + str(senior_numb))\n", + " else:\n", + " print(str(senior_numb) + str(junior_numb))\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " encryption_protection()" + ] + }, + { + "cell_type": "markdown", + "id": "5cdf4f07", + "metadata": {}, + "source": [ + "## 11.Красота спасёт мир\n", + "- Согласно одному древнему поверью, трёхзначное число считается красивым, если сумма его минимальной и максимальной цифр равна оставшейся цифре умноженной на 2.\n", + "- Напишите программу, которая проверяет, является ли число красивым.\n", + "- Формат ввода\n", + "- Одно трёхзначное число\n", + "- Формат вывода\n", + "- YES — если число красивое, иначе — NO" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0ef9e843", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "NO\n" + ] + } + ], + "source": [ + "def beauty_will_save_to_world() -> None:\n", + " \"\"\"beauty_will_save_to_world.\"\"\"\n", + " local_numb: int = int(input())\n", + " local_numb_1: int = local_numb // 100\n", + " local_numb_2: int = (local_numb // 10) % 10\n", + " local_numb_3: int = local_numb % 10\n", + " min_numb: int = min(local_numb_1, local_numb_2, local_numb_3)\n", + " max_numb: int = max(local_numb_1, local_numb_2, local_numb_3)\n", + " mid_numb: int = (local_numb_1 + local_numb_2 + local_numb_3) - min_numb - max_numb\n", + " if min_numb + max_numb == 2 * mid_numb:\n", + " print(\"YES\")\n", + " else:\n", + " print(\"NO\")\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " beauty_will_save_to_world()" + ] + }, + { + "cell_type": "markdown", + "id": "4712c2c1", + "metadata": {}, + "source": [ + "## 12.Музыкальный инструмент\n", + "- Вася обожает треугольники и решил попробовать сделать один самостоятельно.\n", + "- У него есть несколько алюминиевых трубочек разной длины, и он хочет узнать, можно ли из них собрать треугольник.\n", + "- Помогите Васе определить, можно ли из трёх данных отрезков создать треугольник.\n", + "- Формат ввода\n", + "- Три числа — длины трубочек, каждое с новой строки.\n", + "- Формат вывода\n", + "- YES — если Васе удастся создать музыкальный треугольник, иначе — NO" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "19f90bd3", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "YES\n" + ] + } + ], + "source": [ + "def musical_instrument() -> None:\n", + " \"\"\"musical_instrument.\"\"\"\n", + " side_1: int = int(input())\n", + " side_2: int = int(input())\n", + " side_3: int = int(input())\n", + " sum_1 = side_1 + side_2\n", + " sum_2 = side_1 + side_3\n", + " sum_3 = side_2 + side_3\n", + " if sum_1 > side_3 and sum_2 > side_2 and sum_3 > side_1:\n", + " print(\"YES\")\n", + " else:\n", + " print(\"NO\")\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " musical_instrument()" + ] + }, + { + "cell_type": "markdown", + "id": "8f6833d2", + "metadata": {}, + "source": [ + "## 13.Властелин Чисел: Братство общей цифры\n", + "- Во времена магии и драконов ходили легенды о числах, обладающих великой силой, способной изменить мир.\n", + "- Три числа были даны эльфам, семь — гномам, а девять достались человеческому роду.\n", + "- Но все они были обмануты... Потому что существовало ещё одно число. В стране Нумия, на бумаге из тёмного папируса, властелин Зерон тайно записал Единую Цифру, подчиняющую себе все великие числа.\n", + "- Давайте выясним, что это за цифра!\n", + "- Формат ввода\n", + "- В первой строке записано двузначное число одного из эльфов.\n", + "- Во второй строке — Гномов.\n", + "- В третьей — Людей.\n", + "- Формат вывода\n", + "- Одна цифра — общая у всех трёх чисел в одинаковой позиции" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "6fe46222", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1\n" + ] + } + ], + "source": [ + "def brotherhood_of_numbers() -> None:\n", + " \"\"\"brotherhood_of_numbers.\"\"\"\n", + " num_1: int = int(input())\n", + " num_2: int = int(input())\n", + " num_3: int = int(input())\n", + "\n", + " if num_1 % 10 == num_2 % 10 == num_3 % 10:\n", + " print(num_1 % 10)\n", + " elif num_1 // 10 == num_2 // 10 == num_3 // 10:\n", + " print(num_1 // 10)\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " brotherhood_of_numbers()" + ] + }, + { + "cell_type": "markdown", + "id": "e736302f", + "metadata": {}, + "source": [ + "## 14.Властелин Чисел: Две Башни\n", + "- Во времена, когда люди верили в магическую силу чисел, волшебник Пифуман предал все народы и встал на сторону Зерона.\n", + "- Теперь, чтобы проникнуть в башни обоих злодеев одновременно, нужно разделить силу числа, которое защищало нас в дороге.\n", + "- Для этого возьмём трёхзначное число и составим из него минимальное и максимальное возможные двухзначные числа. Каждая цифра может использоваться не более того количества раз, сколько раз она встречается во входном числе.\n", + "- Формат ввода\n", + "- Одно трёхзначное число.\n", + "- Формат вывода\n", + "- Два защитных числа для каждого отряда, записанные через пробел." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a5beda1b", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "77 87\n" + ] + } + ], + "source": [ + "def two_towers() -> None:\n", + " \"\"\"two_towers.\"\"\"\n", + " num = int(input().strip())\n", + " digits = [num // 100, (num // 10) % 10, num % 10]\n", + " digits_sorted = sorted(digits)\n", + " min_digits = digits_sorted.copy()\n", + " max_digits = digits_sorted.copy()\n", + "\n", + " min_first = None\n", + " for dig in min_digits:\n", + " if dig != 0:\n", + " min_first = dig\n", + " break\n", + "\n", + " if min_first is None:\n", + " min_first = 0\n", + "\n", + " min_temp = min_digits.copy()\n", + " min_temp.remove(min_first)\n", + "\n", + " min_second = min_temp[0]\n", + " min_number = min_first * 10 + min_second\n", + "\n", + " max_first = max_digits[-1]\n", + "\n", + " max_temp = max_digits.copy()\n", + " max_temp.remove(max_first)\n", + "\n", + " max_second = max_temp[-1]\n", + " max_number = max_first * 10 + max_second\n", + "\n", + " print(f\"{min_number} {max_number}\")\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " two_towers()" + ] + }, + { + "cell_type": "markdown", + "id": "13eafd8b", + "metadata": {}, + "source": [ + "## 15.Властелин Чисел: Возвращение Цезаря\n", + "- До победы над злом остался последний шаг — разрушить логово Зерона.\n", + "- Для этого нам нужно создать трёхзначное магическое число, которое будет сильнее двух защитных чисел Зерона.\n", + "- Как его составить?\n", + "- Первая цифра — максимальная из всех защитных чисел.\n", + "- Последняя цифра — минимальная.\n", + "- Средняя цифра — сумма оставшихся цифр без учёта переноса разряда.\n", + "- Соберите это магическое число и помогите одолеть зло!\n", + "- Формат ввода\n", + "- В двух строках записаны защитные числа Зерона.\n", + "- Формат вывода\n", + "- Одно трёхзначное число, которое приведёт к победе." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "cc802f0a", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "321\n" + ] + } + ], + "source": [ + "def caesar_return() -> None:\n", + " \"\"\"Caesar_return.\"\"\"\n", + " num_1, num_2 = int(input()), int(input())\n", + " digits: list[int] = [num_1 // 10, num_1 % 10, num_2 // 10, num_2 % 10]\n", + " digits.sort()\n", + " max_num, min_num = digits[-1], digits[0]\n", + " mid_num: int = (digits[1] + digits[2]) % 10\n", + " print(f\"{max_num}{mid_num}{min_num}\")\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " caesar_return()" + ] + }, + { + "cell_type": "markdown", + "id": "0428a6e3", + "metadata": {}, + "source": [ + "## 16.Легенды велогонок возвращаются: кто быстрее?\n", + "- В новом сезоне за первенство в велогонках снова сражаются сильнейшие. Протяжённость финальной трассы — 43872м, и все хотят узнать, кто первым пересечёт финишную черту.\n", + "- Нам известны средние скорости трёх претендентов — Пети, Васи и Толи. Кто станет победителем?\n", + "- Формат ввода\n", + "- В первой строке записана средняя скорость Пети.\n", + "- Во второй — Васи.\n", + "- В третьей — Толи.\n", + "- Формат вывода\n", + "- Красивый пьедестал (ширина ступеней 8 символов)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "83a58a40", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Петя \n", + " Толя \n", + " Вася \n", + " II I III \n" + ] + } + ], + "source": [ + "def cycling_legends() -> None:\n", + " \"\"\"cycling_legends.\"\"\"\n", + " petr: int = int(input())\n", + " vasya: int = int(input())\n", + " tolya: int = int(input())\n", + "\n", + " number_1: str\n", + " number_2: str\n", + " number_3: str\n", + "\n", + " if petr > vasya > tolya:\n", + " number_1 = \"Петя\"\n", + " number_2 = \"Вася\"\n", + " number_3 = \"Толя\"\n", + " elif petr > tolya > vasya:\n", + " number_1 = \"Петя\"\n", + " number_2 = \"Толя\"\n", + " number_3 = \"Вася\"\n", + " elif vasya > petr > tolya:\n", + " number_1 = \"Вася\"\n", + " number_2 = \"Петя\"\n", + " number_3 = \"Толя\"\n", + " elif vasya > tolya > petr:\n", + " number_1 = \"Вася\"\n", + " number_2 = \"Толя\"\n", + " number_3 = \"Петя\"\n", + " elif tolya > petr > vasya:\n", + " number_1 = \"Толя\"\n", + " number_2 = \"Петя\"\n", + " number_3 = \"Вася\"\n", + " else:\n", + " number_1 = \"Толя\"\n", + " number_2 = \"Вася\"\n", + " number_3 = \"Петя\"\n", + "\n", + " print(f\"{' ' * 8}{number_1:^8}{' ' * 8}\")\n", + " print(f\"{number_2:^8}{' ' * 8}\")\n", + " print(f\"{' ' * 16}{number_3:^8}\")\n", + " print(f\"{'II':^8}{'I':^8}{'III':^8}\")\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " cycling_legends()" + ] + }, + { + "cell_type": "markdown", + "id": "531c7821", + "metadata": {}, + "source": [ + "## 17.Корень зла\n", + "- Знаете ли вы, что Python изначально создавался для решения математических задач? Давайте воспользуемся его возможностями и найдём корни уравнения, используя составные условные операции.\n", + "- Формат ввода\n", + "- Вводится 3 вещественных числа a, b, c — коэффициенты уравнения вида: ax**2 + bx + c = 0\n", + "- Формат вывода\n", + "- Если у уравнения нет решений — следует вывести «No solution».\n", + "- Если корней конечное число — их нужно вывести через пробел в порядке возрастания с точностью до сотых.\n", + "- Если корней неограниченное число — следует вывести «Infinite solutions».\n", + "- Примечание\n", + "- Обратите внимание: ограничения на значения коэффициентов отсутствуют.\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "39db3425", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1.00\n" + ] + } + ], + "source": [ + "def root_of_evil() -> None:\n", + " \"\"\"root_of_evil.\"\"\"\n", + "\n", + "\n", + "a_num: float = float(input())\n", + "b_num: float = float(input())\n", + "c_num: float = float(input())\n", + "\n", + "if a_num == 0:\n", + " if b_num == 0:\n", + " if c_num == 0:\n", + " print(\"Infinite solutions\")\n", + " else:\n", + " print(\"No solution\")\n", + " else:\n", + " root: float = -c_num / b_num\n", + " print(f\"{root:.2f}\")\n", + "else:\n", + " discriminant: float = b_num**2 - 4 * a_num * c_num\n", + " if discriminant > 0:\n", + " root_1: float = (-b_num + discriminant**0.5) / (2 * a_num)\n", + " root_2: float = (-b_num - discriminant**0.5) / (2 * a_num)\n", + " if root_1 > root_2:\n", + " root_1, root_2 = root_2, root_1\n", + " print(f\"{root_1:.2f} {root_2:.2f}\")\n", + " elif discriminant == 0:\n", + " root = -b_num / (2 * a_num)\n", + " print(f\"{root:.2f}\")\n", + " else:\n", + " print(\"No solution\")\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " root_of_evil()" + ] + }, + { + "cell_type": "markdown", + "id": "568f7ac3", + "metadata": {}, + "source": [ + "## 18.Территория зла\n", + "- В давние времена верили, что если местность имеет форму треугольника, то в ней может скрываться страшное зло.\n", + "- При этом риск столкнуться с ним зависел от формы треугольника:\n", + "- Остроугольный — вероятность встречи со злом крайне мала.\n", + "- Тупоугольный — опасность велика.\n", + "- Прямоугольный — вероятность 100%!\n", + "- Напишите программу, которая определяет вероятность встретить зло по длинам сторон треугольника. Воспользуйтесь для этого составными условными операциями.\n", + "- Формат ввода\n", + "- Три числа — длины сторон треугольной местности.\n", + "- Формат вывода\n", + "- Вероятность встретить зло согласно поверью:\n", + "- крайне мала;\n", + "- велика;\n", + "- 100%." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1172dbc7", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "100%\n" + ] + } + ], + "source": [ + "def territory_of_evil() -> None:\n", + " \"\"\"territory_of_evil.\"\"\"\n", + " a_numb: float = float(input())\n", + " b_numb: float = float(input())\n", + " c_numb: float = float(input())\n", + " max_side: float = max(a_numb, b_numb, c_numb)\n", + " sum_sq: float = a_numb**2 + b_numb**2 + c_numb**2 - max_side**2\n", + " if sum_sq == max_side**2:\n", + " print(\"100%\")\n", + " elif sum_sq < max_side**2:\n", + " print(\"велика\")\n", + " else:\n", + " print(\"крайне мала\")\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " territory_of_evil()" + ] + }, + { + "attachments": { + "image.png": { + "image/png": "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gcJKgNnGwjozjIsESIAESIAESIAESCAUCTBmEiABEiABEiABEghvAsw2hvf8c/QkQAIkED4EOFISIAESIAESIAESIAESIAESIAHrCTDbaD1j9pA7AW4lARIgARIgARIgARIgARIgARIgARIo+gQ4wnAhwGxjuMw0x0kCJEACJEACJEACJEACJEACvgiwjARIgARIgATMJMBso5k0qUUCJEACJEACJEAC5hGgEgmQAAmQAAmQAAmQAAmEHgFmG0NvzhgxCZDAzSbA/kmABEiABEiABEiABEiABEiABEiABHwTKErZRt8jZCkJkAAJkAAJkAAJkAAJkAAJkAAJkEBRIsCxkAAJFGYCzDYW5tlhbCRAAiRAAiRAAiRAAiQQSgQYKwmQAAmQAAmQAAkw28h9gARIgARIgASKPgGOkARIgARIgARIgARIgARIgAQKhgCzjQXDmb2QgG8CLCUBEiABEiCBIAlERUWVKFEiLi7O4XAEKcXmJEACJEACJEACJEACVhEIJ11mG8NptjlWEiABEiABEiCBIkoAqUZYER0ch0UCJEACVhKgNgmQAAmQgNkEmG00myj1SIAESIAESIAESIAEgidABRIgARIgARIgARIggdAkwGxjaM4boyYBEiCBm0WA/ZIACZAACZAACZAACZAACZAACZBAzgSYbcyZTWhtYbQkQAIkQAIkQAIhS+DcuXMdOnRo1arVwIED/RnEmTNnRo0aNXjw4KZNmyYlJaHtsGHDJk6cePnyZX+asw4JkAAJkAAJkEAoE2DsJFDYCTDbWNhniPGRAAmQAAmQAAkUeQKzZ88+fPjwyZMn9+zZk+dgx48f36xZs9GjR69YseLs2bNXr15F2yVLljz33HOtW7dGYZ4KrEACJGANAaqSAAmQAAmQAAl4CTDb6KXA/yRAAiRAAiRAAkWXQGEfWWpqKhKIfkb59ddfv/jiizlVRuZx8ODB8+fPz6kCy0mABEiABEiABEiABEjAagLMNlpNmPokQAI5EWA5CZAACYQXAZvNln3AFy9e/OMf/7hz587sm7KXbNmy5YUXXpDlzZs3x+pXX3317LPPNmjQQJY/9dRTycnJcpUOCZAACZAACZAACZAACRQkgezZxoLsnX2RAAmQAAmQAAmQQFgQcDqddnv6edfx48dnz549bty4Rx55pGHDhjNnzvQTwdtvvy1r9u3b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ndPeV9cIMtroTuXkvH9to7qwEaXDmWGkNBIggYYJpO6935zmy2Ea5seGJKCVAMVIgARIgARIoBMIWGfOdoKb9JEESKCHCKzrWycMIQccfrHwTJ7XNkoqFVJGG10oE0G0UV3YiNLwtbJYpZFALAS6V9Scmkrf/2D3jo8jIwESIAESIAESIAES0E/AOndOvygVSYAESKA5Aurm1/A1anN130ndnBMd1ZrRRne6Jucm3F+INTqla2KH+3hto6TClAQaIZC+/U6jWGykJduQAAmQAAmQAAmQAAn0KgHrdOuvbexV1hw3CZBAZALr+9eruuryxukl3smnqJRnGG10iajnNqqdBqXDfaWdCas0EiCB6AT4cpjorFiTBEiABEigCgEWkwAJ9CIBsbBgTk314sg5ZhIggTYmsOxytOAqNV7bWGPGGG00ZrOztmNLRqFLGw11oazcxJQESCAqAb4cJiqpDq1Ht0mABEiABEiABEggRgLWWd5MHSNeSpMACTRAYCj0ohgjiBzN5vmWmKosGW00phZLfzpbfm1j6a1DVfm10Qa6QgLtQoAvh2mXmaAfJEACJEACJEACJNCBBExGGztw1uhyiwmwuxYTCF/bqAJHM9nZFrvRQd0x2miE77QProfFDIploWsU0EiABCIQMKf4cpgImFiFBEiABEiABEigGwlwTFoIWGf56EYtIClCAiSgjUA4QKReFOM49nx+Xlsf3SXEaKMxtThdmtPggljeRl1iwhwJ1EOAL4ephxbrkgAJtIgAuyEBEiABEuggAtaFS4btP+qqg9ymqyRAAl1MYLi/9Brh0GVqxmyWN1NXnnZGG43ppQp3Uoevkq1MjqUkQAIrCNT7cpgVAiwgARIgARIgARIgARLoeQLFonnufM9TIAASIIE2IjDcN2QIIR1Sd1Jjda7AaCMwVLAK0cYKtbq6aGppRo7PCS5sxKq7J+EXjQRIIDoBvhwmOivWJAESIAESIAESIAESqE7AOscXxVSno3cL1UiABKIRGM4MyYrhaONsblYWMi0jwGijMV+68LV0PSyjjWU7CldJYFUC/fc/aE77sftVK7MCCZAACZAACZBALQLcRgK9TcA6w0c39vYewNGTQPsRUDdThy5UMxbyC+3naVt4xGgjdo5FfypKwUajP9XvF/IXCZBABALW9HTfw49EqMgqJNDhBOg+CZAACZAA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2jFne1DThbaqakFFZwEmcvafef+lPd87d+OcyIEDAgVIID51SnjHYwHb4lEBBomQZBKg1UbDSL+mdCQdKkt/nrHlwQO7dvYZ+QAAEABJREFUBp0EyXiOYZqRti9Ql1eU80ykHQkkhtQ9eP5zBu7V2BENckAABLwk8NH5T17a+/1T106KThRmfXtasX17emDVgA2j18+vmyvqFLaD6EAABEAgAwGsNmaAgiwQAIHCJLBywopvrvnG2EFjRXhMUXRNV1j6Q46X7lx6ad8Pdp/aI+rAAYECJBCfOKH1yccDavrQLcAgEZJEAmbANI3UXRedyaqK7SvSra137tzJqHP9WvqXZMrLsNqYEVIgPnpk62efDYRK+7OfmceOXBAAgZ4i0BJp+eXHr/7q41+1RNLvGGlM1R/+9vSihoXPzfvciF7DeypO9AsCIAACUghgtVEKRoiAAAjkicDIASO+uebFdZPXiv5YgOmqptneEKYX9TuP73p534+vN98Q1eCAQGEQSEcRHze29ZmnTA0Ljmkmpe1ZC47uRljTO30H26amppu3btk/L2mY5vXr169evco7UVSlT98+3EdqJxCbMqn1madNPf1JeXspfBAAARDwgsDJK6de2vP9j89/LMQZY0FaabR9e7q6rPqZBZ/69MKnq0KVohocEAABEChSAkqRxo2wQUAqAYgVEwG6OHtk5tYvr/hiXc0gEbeqaHTFRkUi59T1U9/b870Pm9JXdaIIDggUCIH4qJGtzz6DVY8CmY7CD6O2traiMv0S9OKFC8ePHTvXdO7CxYuUHjt69PLly2IUdXX1uu3WEyLf50507pzwY48EFOZzDhg+CIBAPgnsPP72j97/8fX710WnKqOFxiBj6RfjU4ZM/saary0es0jUgQMCIOAdASjngUD6BJeHztAFCIAACMgiMG3o1G+s+frChgVCkK7YgmqQrt5EzoNoy6ufvPrLj199EGkRmXBAoKAIJIYPa3nuMybur1dQs1KowdAbKsOHD9NtH8qLRqN379y9dfMmpfF4+jey+vXr16cPPtjYfiIjq1ZENq4LMCw1tieDfRAoEAKlF8bF25de2vP93ad224fGfxDGfibaOmPzCyu/XN+n3l4NPgiAAAgUNQGsNhb19CF4EPA1gV7lvZ5d+Mwz85+qClUJEJqq0TWc2CXn4/Mfv7TneyevniIfBgIFSMCoG9zyhefNXr0KMDaEVGgEdE0fN358XX29oma+hAsGg6NGj6qvr7e/jnU5ilJozlh4y6boEnxoqBQmE2MAgWIhcODMge/t/d65m+lfL1RY+x+EGd5v+NfXfG3DlPXFMijECQIgAAJZEsh8qZplY1QDARAAgR4nsHjs4m+s+dqUIZNEJIqiBtUgXc+JnBv3b/zowI93Httlmva7nInyonQQdCkRMPr0efDF5xP9+5XSoDAWjwgojPXv12/ChIkjR42iZcf+A/r3rqkZMHDg0KFDGxoaxo4bV1WZfgPGoxiKTFZRW3c8Fps1o8jCRrggAAJFS+BOy52fHXzl9SNvxhLpT513/EGY5eOXfnPtixMGjy/agSJwEAABEOiUAFYbO0XjrACtQAAE8k9gSN8hL6z8ypbpm0XXjDFd1R/66ZhAYPfpPd/b+4OLty+JanBAoHAImFVVdz/76djQIYUTEiIpZAKqolRXVdGyY93guuHDhg0eNKhPnz4VFRW0FlnIYec/NlPT7zyxPTZ+XP67Ro8gAAL+JHDkwtGX9nz/6OVjYvh0XRpUdNX2gzB9K/t8bvFnnpz7RJleJqrBKUoCCBoEQKATAlht7AQMskEABIqNwMap67+++qvD+g0TgauKFlR1xtInunM3z72053v7Gw+IOnBAoHAImMHgnaeeiDQ0FE5IiAQEipqAUV52+9Ofig1PPy8U9XAQfA4EUBUEeoJALB57/fAbr3z087utd0X/Kkv+IIySvhydNWLmN9Z8fd6ouaIOHBAAARAoPQLps17pjQ0jAgEQ8BuBCXUTvrn2xWXjloiB01IjLTjSdZ7IiRvxN46++bMPXrnTckdkwgGBQiGgKPe2PxKdPbNQ4pEbB9RAII8EjN697j37TKJ2YB77RFcgAAL+JUBvaX93z/cOnH3fjkBXNE3VxI10dVXfPvvRzy99fmCvAfZq8EEABECg9AhgtbH05hQjAoEcCZRW9XK9/Kl5T35u8Wf7VtaIkdF1Hq05sgATOUcvHaMrwiMXjoocOCBQOAQimzZEV68onHgQSbEQwI1pxUwl6ga3fOkLiX64F6pAAgcEQMBDArtP7X5pz/cv370s+lBY+x+EGTOo4Rurv7Z64ipRBw4IgAAI9ASBPPWJ1cY8gUY3IAAC+SQwb9Scr6/5+szh6d8EYEzRtaD9Q473Wu+98tHPXzv0ejQRzWds6AsEsiEQWbyo9bFtpoKn6Wxo+b2OYZoJI0GGH8Lih0J83NiW5z9rVpTzXaQgAAIg4B2BG/dvvPLRL3adeMfehaaounUzn/T73GsnrfnG6hdH1462V3vYxx4IgAAIlBQBvIwpqenEYEAABASB2l4Dv7Dsdx6b9YimajyTrvjI15XULs98/9zBl9//8flbTXwXKQgUDoH41Cmtn/6UqT90xBZOeIgEBAqTQHThgtandgQ0WQ+cwhwlogIBECgIAh9f+ORHB3/SeKNRRENvbwdppVFJn4Jqe9d+cdnnH521TVVUUQ0OCIAACJQ8Aaw2lvwUY4Ag4GsCayatpneSG2zvJCuKGlSDiu2nY67cu/KjD36698x+X5MqssH7JdzEqJEtz+EjWn6ZbozTJQFTUcJbNkXWrgowenfJpRiagwAIgEBXBO6H7//y41+9fuyN1lirqKcxlZYame0ic96oud9c8+KM4dNFHTggAAIg4BMCWG30yUTnZ5joBQQKkQAtNdKCIy07iuAYY7qqa8pD7zDvbtz98oEfXb17VVSDAwKFQMCoG/zg888nevcqhGAQAwgULAEzFGp95qnYrBkFGyECAwEQKBkCJ6+efGnP9z4+/4kYkcIUWmdU275PQ/nlofKn5j75ucWfqalI30mc8mEgUEoEMBYQ6IIAVhu7gIMiEACBEiGgqdpjsx75wrLfGdgr/eOkqqK1+5Dj6WuN39n93T2n95bIsDGMUiFg9u3T+uUvJIbUlcqAMA4QkEzAqK5u+cJzidGjJOtCDgSKkwCi9o5Ac2vzbz75zY8O/OTmg1uiF03R6G1s+0caJ9VN/Oaary8bv0TUgQMCIAACfiOA1Ua/zTjGCwL+JTBz+Ay68ps7ao5AkPqQo+2N6Ggi9taxnd/d/b1zN86JanBAoMcJmOXlrc9/LjZ1So9HggAcE0BDjwgk6ga3fPnzRv/+HulDFgRAAAQ4gY/Pf/KdPS8dbPqQ71JKV5JBLdju6zKbpm742uoXhvUdShVgIAACIOBbAlht9O3UY+Ag4EcCfSprnlv82afmPVkeTP1WKVHQmBrSggpLnw+bbjW9tPf7vz26MxKLUAUYCBQCAeuedI9ti6xaYTJWCPEgBhAoBALxcWNbnv+sWVlZCMEgBhAAgVIlcL35+k8PvvLLj391p+WOGKPKrLs0KoH0k/LQvkO+tuqFzdM3iTpwQAAEQMC3BJTCHDmiAgEQAAHvCCwbt+Qba16cWDdBdMECLGjdyTH9A4JUtLdx73d2v3Ts0jHyYSBQIASiSxaFn37S1PUCiQdhgEAPEogunN/61I6A9tCpuwfjQdcgAAIlSWDvqX3/+N53j122XxAyXdE0VaMLSDHkpWOty8tJ9RNFDpwcCKAqCIBAyRHAamPJTSkGBAIgkAWB4f2Gvbj6qxunrrfXVRXrPWpm+5DjteZrP/3glV99/Ku7rXftNeGDQA8SiI9paPn8c0Z1dQ/GgK5BoMcJJH9+enUAH/X1dCYgDgL+JnDuZtP3937/t8ffisbTX3ZRWfI7MUr6xwary3s9u/CZT81/sjKEz1n7+4jB6EEABGwEsNpogwEXBEDAZwS2TN/81ZVfqe+T/vENxqyfFNRY+gqSkHx0/pPvvPfdD859QD4MBHqeQCBg1A5s/fIXjMGDCiEYxAACeSZgVla2PPeZ2KwZee4X3YEACPiHQCx5I++X9nzvzMM38uYfabRzmFQ36ctLvjB/1Dx7JnwQAAEQAAGsNuIYAAFJBCBTnAQmD5n01eUvLB+73B6+qmpBVVdsH3K8F27+9aHXfnzgJ1fuXLXXhA8CPUXAqKx48Dufi01K3xCgpyJBvyCQTwKJusEPvvz5xPBh+ewUfYEACPiKwPHLJ77z3nf2nN5rH3XyI40hxfaRxpqK3ttnPva5BZ8ZWD3QXhM+CICAPwhglN0QwGpjN4BQDAIgUPIEyvSyTVM2fHHJ58cMahCDZUzRrTs5PvQhxxNXT/7T7u+8d3K3qAYHBHqSgKaFd2yPLl+K343pyVlA33kkEJs2pfXzz5m4jUAemaMrECg2Aq7ivdd679WPf/OTgz+9cu+aEGKB1F0aRQ45C0bP/92131zUsJB8GAiAAAiAQEcCStz1ZrRtrpUyCyQSCd4DOZlrOMolTY7DNE1HAt00omipCzJyuqnqtJjEuTkVyNyOAuay5GSu4TqX67uWySxAYXs0szxsSjN37DqXIidxMnJci2UWIHGyzGVOcyla0iQjx6lGN+3oQcrntJt6Tospcop/dP/RL6746uZpGzVFox65KUwNKjpjjO9SGkvEdh7f9U+7v3v6SiM17NpIliyeiHddzVmpkTo1Ug+GM4VsWlnqhmR9wsgnlIaQTQwO6vCw496QJ1Wub5iSydBIDb6Rl7W1LFnUsmO7oalmwOzObDVsbnetupUVFfjEBgKkKE+flHgHpEvCnhgdlFyXOvPEhCgfiuSU1Lmi5dCfNJM4oTzADmnW5A1Fadm47sHWzXHTzPrBkTBM/ogy6GGbfatsanLdYjzJ8NG1TW2A78pKBXAjYcjSbKfDybfLlLYbT3B9GkhC9saVZaum9OihxeeUekllyf6PlMnkqtJxQprc5Crb1bLX/+Dsh//03nc+aPrAOjO1/SnJt5/pTei2DHNw70GfW/SZp+c91beiD3Uk9J1eh2ZoR5piQjMUu87yKGx7XDQEbvZM937eIncfakYFYsJnltKMFRxnkjI3xwpdNyxS8nkIm6aSW9cAHZd6N4Q8HDBKi+stHA5HkptrpcwC4XBKv7W1NXMNR7nRaJQfFrFYzJFA942SVCLhcLj7qo5qkDLvwlHrThu1trZyWXI6reSigGS5PsXvQqbTpiTLZ5YemZ1WclQgIifHkUA3jUiWkyGnm6qOiokM1yfHkUCnjTySFf3xCaVU5Mh1CAgfApFfMnLxl5d8cXztOHqJmjLT1AKqwlR+Rubpuevnvrfv+68dev1u891wJ9v/y955AEZR5X98p+xuQgmd0Aldegm9914FpNhAkWZBmuKpd97/mnd6epbzTs8OqCCKCgLSlBp6Cb0TeieQvtns/r+bF4bNZtN2Z5Js8l1/Dr958973/d7nzczu/GZ2A02cZ1yWZMukil/FCYkJLnH8b4w+goO2MPg6Gq4uMJswW7IhZKqkUn0AABAASURBVIwmn5iUaBOvJJ3jF6pYJiTm7hVTs/qtsQ/Zg4PF/pnZ0rVLOx1OZ2bb/S133rveheOvllt7XP07nSJsp1uxnq7Qx1JPUTctxA1xmFuZrq4Tr1RETnSlmzK0cJzCnCaTbqLphRCvsPTFnmspxYrdGjv6buNGuTswEhNtSTieXIbDNrdts6gfuCcZbVDO1KMVS61EFycpMY24vsC12Fxzee9/rVBPJykxTT7JqNN7ojEvfOjFoQpD/Eb0AFnNdNQvOJ9kzl8//93O71dErrwdF62dgHDnDHegFZOMk6FmXep0mtLpqYYVHhCfRUEjKfWFz5CiRJclaGM2YchQ6CLoIYJoU6NOQvwem/RahbLoQi9BoaNFDkeU6LvUwoajr7JQgyymFYZjVpTotYSyEcC18DT9gCMvsCB+bSz6OngnxYTC9JXV1BC5GIK+5KEmZKGv9aWjI/RlcClSxsGSAAmQQNYEqpep9kTHCcOaDy0eVEKrqUqyVbXIcrovVu+O2rN4z5LjV49r1eiQQH4RsFeudPvJibY6dfIrAPZLAgYRSK5S5dbEx+xV7/85L4M6oiwJkEDRJLAras+3e747ce2k+/BV8RPeJkkrDCtf68lOTwxpNjjYEqwV0gkAAgyRBEggnwjIqt8v+d7LbyXvAoqiiB4URfFew6dSaArmcHwSyKYRooUyDE42VX3dDHFhvgpk2k7IGh25QfqQFTMrSVKmI/RpA5QDnYwR8ecBFjGhWPo0b9k38jqE7g90e7bH9PCwcOxIwmRJtipmi2oRq2J5K+7WykO/rD2yLiYpVpEVd5OxIrtK5HsO/tXRMDChhmkVTqAsgQ6zCTMocg245uhLxjjy2MfSQlWUNEfOhSMVLx770Kj43r1NsiKZpIyGsrRCSUpzUKSnYVbTTE99SbqnZrrnaCWB4ZgkKS1ySUpzUKSfAbqQ1Ryx6ufSFSAUU81PKZ+bJ4W3innsEalESR+OCDTRTjLaYYtC/02GhKykLmQsdTctWi1+3buQJAkTK0mSzsqQk11kFLyEk9nSp3JJTgtYc9ChjpYH5HWM1l0KU4kJhbkX6uhrwDVHF/F8B34p+uJ3e3/YcmpLckoyGArD0HCD2SyrYhVLVTUPaDrg2Z7Tm1RrrKZ/ufZ0HKgydmheqKZDI997pSvVY0UIg7weYp4akDVUH+I4TmGp+5Vn7/6sQ1mYPyJZtDWajEH6Bsm6g8JUYkJh7oU6+sYNQeww0NcxWk0Ksi79Yn6/goKCrKkvv5W8C2j6wcHB3mv4VGqxWLBPwEDEJ4HsG6VSsSL+7Kv6VAPKogufWmfaSJPVF7jWH2RF2HC0Qh0dxI9phWEX11EWUlAWkcM3wjR9g8hAVsQPR9/4hSzi11dWU9NO4lqJvg4iF0PwIFOrUq3JPSY93uWxiqVCJVkWhnvdQZYgs2J2nUDv/X/k6lHcFT987UhQcNB9swaZLWZYEE4D7uU6+YgZ4jCL1XK/U53EhSCUoQ8Tq3otZSXtsXqch/XSTKeTZ+QtOpO3BllBGxaEl69TaeraKXHqU87y5eSMLxxLsoRrxdTdOeNmWfavDPI498JSu/BPK31rCKZa+lL91lKPbkFGP1F3JaBJI+9eqqefygfj0FMTIWM2YZJk0lX3vhgiltCN6/x6v1B4ktlsGzkiZdiQoGLB6Q7w4KCcr+IkgwMKhhNmzltlXzNgTzLa0Ez3XlqJLo7FknYSs1qtugh6igQseYPeTzU+ipL2xoq9XSvU0zGGPPYTBAwDHz2jdTtLQBn6MA99SZUizm7/bt8Pl+5clN1eFsVsNVsVRU09O7nOTc1qNJs7YNbw1kNLFC+R8fNn0L0LYY/PkBlr5qrEYvCFKqK1pr4Qf64Cy3llKKf2YM15k5zU1GQxhJzUz20dyIqw4eS2bU7qI35x9sVOl5P6Oa8DZRF5zpvkqqambxAZyIr44eQqsGwrC1nEn21N3yqICcXSt+bZtkLkYgj6koGaEbLacIR+2jsT6NBIgAQKKAGGla8EOtRpP6vfjK71u2hRSCZJVVTXTW+TpBXGJcWuPrhmyc7vL926rBXSIYF8IeCoFJowbXJy86b50js7JQH/CThDQhImTeA+7D9JKpAACWQkcPTS0YURX28/vd19EzKLSDUiz6gVhgSVHNN29PSeU8PKh2mFdEiABEjAeAKFpAdmGwvJRHIYJEACxhEoXaz0uPZjJnebVL1sNa0XWVYsqkWR0v2S48lrJ7/a9tWWE1sdTodWkw4J5D0Bp9mcOGJY4oPD4eR97+yRBPwhYK9bJ27KpJTKlf0RYVsSIAESyEjgTsKdlZErf9j707WYa+5bcQvZrJgl6f6lcdvabWb1f777A93cqtElARIgARLIBYH7p9RcNGJVEiABEih6BFrWbDGr3/N9G/dxH7qqIOOIj6f3H3K0O1M2Hd+Me+Znbpx2r0mfBPKeQHKzJvHTJ6dUCs37rtkjCfhAwGlWkwb0S3hknLN4sRw3Z0USIAESyBGBvVF7F279av/5A+61cdvYolhwC1krrFSq0oTOj03s/HhoCN89NSp0SIAESCDXBJhtzDUyNiABEiiyBILMQSPChz3X55l6lepqEHAnHJ9T1fQPOV68fXHJ7qUbjm9KsCVoNYuSw7EWFAKOMmXiJz9pa9+2oATEOEggEwKOCuXjpkyytWuTyXYWkwAJkICPBK7dvf79rqW/HFxzNzFGk5AkySyruG0MRyvs0bD7zH7PtavNN00NCR0SIAES8JEAs40+ggvMZoyaBEhABwINKz8wq+/zQ1sONitmTU5RVOQcZbfv4GDT3vN7v93z/eHLh+HTSCDfCMhyUv++8ePHOIKD8y0GdkwCWRCQpOQO7eKnTXaWL59FLW4iARIgAR8I7Dy789s9S45fPeHeNuMjjbUr1Hq617SH2owKCQpxr0mfBAKaAIMngXwkwGxjPsJn1yRAAgFMYEDT/rP6zWharYk2BtwbR/4R98lNpvtfrL4Vd/PnA6uW7Vt+K/aWiS8SyD8CKfXr3Zn0hK1mzfwLgT2TgBcCjmLF7jw0KrFfH6fMD6Ve+LCoUBLgoPKGwJnrZ7/dvWTLqYjklGStR9wYtihmVVG1EkmSBzUbMKvf802qNtYK6ZAACZAACfhJgB/s/ATI5iRAAkWXQFj5sOk9p+I2eMmgkhoFWfby12MOXTy8MOLrXWd2a9XokEDeE3CWLHFn7OjYfn1MZkve917we2SEeU/AVjvs9lNP2MKYBM979uyRBAozgfik+HWHf120Y/GF6Evu41RlBTeGkV7UChtXaTS73/ODWwxS5HR/90+rQIcESIAESMA3Asw2+saNrUiABPKIQMHvpkfD7rP6zWhbu7UWqmQy4Z65RTbj/rlWGGeLW3t43VcR35y6yr8eo1Ghkw8EElo0j5k+2c78Tj6wZ5f3CTjN5sTBA+8+NMoRFHS/lB4JkAAJ+E1gb9TeLyMW7Dyz013J9dVp1aLI9x9pLGEtMarNyGd6T69TsbZ7TfokQAIkQAK6EJB9U2ErEiABEiABjUClUpUmdp7wWKdHKpSsoBVKsiy+qoPko1Z47ta5b3ctWRG58kbMDa2QDgnkMQFHSEjChEeTBg9AxiePu2Z3JAACjtCK8VOfSm7dCj6NBEiABPQicPr6mUXbF/1ycE10XLSmKUmyRbXgNrBkkrRC3CSe3X9mr4Y9tBI62RDgZhIgARLIJQFmG3MJjNVJgARIIBMCHeq0n9VvRtf6Xdy3q5KCnCPuqLsXRp4/MH/rwi0ntian2N3L6ZNAXhKwtQ6Pe3pKSliNvOyUfZGArVOHuGmTHeXKEoUOBChBAiSQSuBW7K2Vkb8s3vHtmRtRqQVpC1VWrIpZdsszVgyp8HinR3GTuFKp0LRK/IcESIAESMAAArIBmpQkARIggSJKoHSx0uPaj5ncbVL1stU0BJJJwh11i2yWJEkrTLInbTq+ef7WBQcv8C9Wa1QKixM443CWLh3/+KNJA/rxIcfAmbQAjjSlUmj81KeS+vQK4DEwdBIggQJGIMVhjzi57cutC/af3+8emuy63WtRpXS/xtitQZfZ/Wa2r9POvSZ9EiABEiABIwgw22gEVWoWSAIMigTyikDLmi1m9Xu+d6N0V9SpX6y2qHK6T73X7l5bvn/5kp1Lz9+6kFfRsR8SSE9Akmzt2sQ/PcVeo3r6DVwjAd0IIJ2d1L9P/JRJSDjqJkohEiCBIk/g8IUj87cs2HBsY2JyogZDkiSzrJoVFY5WGFY+bGqPyWPbjQkJDtEK6ZAACRRqAhxcPhNgtjGfJ4DdkwAJFEoCQeagYS2GTO4yqXaFdD89rsiqRbEo6e+0n7x2YmHEV2sPrYtJiCmUNDiogk/AUbp0wsTHkvr3RVao4EfLCAOLgL1+vbhnp9vatzNJ95/vDqwhMFoSIAH9COijdPH2xaW7f/hp/7Ird6+5K6oSPmZZZDndzd1eDXvN6jujefVm7jXpkwAJkAAJGEqA2UZD8VKcBEigSBOoV7HetK5ThrcaXqZYaQ2EJEmqonp8sRpbd53dPX/r/F1ndsGnkUA+EJAkW/u2cdMm22vXyofe2WU+EzCke0fJEgkPjUwYP8YZUtKQDihKAiRQ9AjEJsauO/zr/K0Lj1057j56WXLlGRVFdS9sXq3Zsz2e6d+or1k1u5fTJwESIAESMJoAs41GE6Y+CZBAUSfQo0G3uQPm9GqU7u8eev1i9d3E2LWH1y+M+Or4lROp1Lgggbwm4CxbJuGxhxPHjHKUuZ8iz+sg2F8hICDLtjbhcc9MtzdqWAhGwyGQAAkUEAJ7zu5BnnHnmZ3u8eA+rllWPb46XbtCrUndnni0/SM1yvJ3Qtxp0ScBEiCBPCLAbKMPoNmEBEiABHJHoEzx0qNaj5w7YHarmi3dW7q+WK1aPL5Yff7Whe93L122b/m1O1fdK9MngTwjkNzwgbinpyb16MYvVucZ88LUkSO0YtykiUmDBpislsI0Lo6FBEggHwmcvHrqq23frD609k7CHfcwVNn1SKP7V6fLFCs9ss2Dc/rPCq/Zyr0mfRLwmQAbkgAJ+ECA2UYfoLEJCZAACfhCALfZn+r25KSuT9QqH6a1l0ySqiDjaJaldCfkQxcPf7l14abjm5OSk7TKdEgg7wioqq1bl7hn+Wxa3iEvBD0hPZ3Uu2fclEmOKpULwXA4hAJOgOEVEQLXY278vH/Fkl3fnbt5zn3IivjqtJzuq9O9GvWYM2B274Y9JUlyr0yfBEiABEggjwmku7jN477ZHQmQAAkUQQLhYa3mDpw9svWI0sVKacOXJNmsmM2uT8z3PxzbHfYtJ7bO37Ig8vwBrSYdEshLAs6QkgkPjYyf8KijfLkc9stqRZZActPGcU9PsXXuaJL58bLI7gUcOAnoSSA5JXnLiS3zty44cOGguy5u0FoUM27WStL9T02tarac03/WqNYjyxYv416ZPgmQAAnu9aguAAAQAElEQVSQQL4Q4MfBfMHOTkkgrwmwvwJFQDJJvRv1mjtgTs+G6X7MUZYVq2pRpXR/SPFG3M0VkSu/3bkk6mZUgRoFgyk6BFLCasZNn5I0oJ+zWHDRGTVHmnMC9hrV4yY/mThyhLN06Zy3Yk0SIAESyILAwQuH5m9ZuOn4Fpvd5lZNwq1Z3KDFbVqtsFaFsEldJz7V7ck6FWtrhXRIgARIoEgTKACDZ7axAEwCQyABEiiSBHDvfXSbkXP7z2pZs4U7AMX1xWqLLKXLOZ66dvrrbYtWH1gTHR/tXpk+CeQRAVm2tWsT9+z05PCWfHItj5gHQjeO0Irx48ckPPE4vzodCNPFGEkgMAicu3l+yY7vl+//+VrMNfeIcTsWN2Vxa1YrLF2s1IPhw+f0nxUeFq4VFmiHwZEACZBAkSHAbGORmWoOlARIoEASqF2x9uRuk3BPPsz9xxwlyYyco2x2v3WP8Pec2/vl1oXbT+5wOp1YpZFAHhNwBgcnDhkUN/lJe10+P5LH7Atcd86Qkq6dYdrklPr1ClxwuQ2I9UmABAoGgbsJd9ceWvfVtq9PXj/pHlHaTzQq6X6isUfD7nP6z+7TuLcs8ZLWnRZ9EiABEigQBHhqLhDTwCBIgASKOAHck587YNaDrYeXCnb7MUdZtiieP+YYnxT367Hf5m9dePzysUIOjcMrqAQclUITHhkf/8TjKVWrFNQYGZeBBJxB1qRePWKfe9r1oKuB/VCaBEigaBHYeXrX/K0Ldp3d7T5sZBLxWcjjJxpb1Gg+p9/Mh9qMKleirHtl+iRAAiRAAgWHALONBWcuAiQShkkCJGAMAXye7tOo9wsDZuNevXsPsuzlxxwvRV9auvenlQd/uXb3untl+iSQZwRSalSPf+qJhPFjHKEV86xTdpS/BJyKktyhXdyMZ2xdOpnUdA8Z5W9g7J0ESCCgCZy6fnpBxFfrjqyPSYzVBiKZpIw/0VizXM0nu06c0v2pOqF1tJp0SIAEjCRAbRLwkQCzjT6CYzMSIAESMIJA2RJlca9+Tv+ZuG/vrq8oqkWxKFK6H3M8dvXYoj2LN5/YkmBLcK9MnwTyjIC9fr24aZMTRg5PKcu/AZpn1POno+SmTeKfnZbYr48zODh/ImCvJEAC9wkUEu96zPXVh9b8tH/ZhVsX3IekSopFteCGq1YYEhzyYPgw3JRtzZ9o1KDQIQESIIECTIDZxgI8OQyNBEigqBKoU7EO7tvj7n3N8jU1BpIkqYpqUcyydP/UnZKSsjNq15dbF+yL2qfVpEMCeUzAjjzUM9Nv9+6RHFzE81B5DD4vuksxOQ8GB8U+93TiyOGO0qXzokv2QQIkUAQIJNqSNh3fsmjXksNXjrgPFzdWXbdX0/9EY/cHuiHP2KdxH1m+/xHIvRV9EiABEiCBgkaA5+uCNiOMhwRIQHcCgSqIu/dz+896MHx4SHCINgZJks2pP+YIRyu8HXd71cHVi7YvPnn1lFZIhwTylIAsxTVtcvTBYZfDWzmCmHPMU/YGdeZUlQ122ysJcStDSjj57KpBlClLAkWSwL5z++dvXbD15Fa7I1kDgJupuKWKG6u4vaoVNq/RbHa/mWPaji5XopxWSIcESIAESKDgE8jHbGPBh8MISYAESCCfCSiy0qdxb+Qcuzfs5h6KLKf+mKOiun8iP3Pj7JJd3y3ZufTM9dPulemTQJ4RcMry9UYPXJr4qK17V4fVmmf9siN9CTjN5uQO7c6OH/ONLTHa6dBXnGokQAJFmcD+85FfbJ6/6sAvN+NuahxwA9Usq7iZCkcrrFGuxhNdJkztPrkuf6JRgxLgDsMnARIoUgSYbSxS083BkgAJBCSB8iXLj2kzela/55vXaO4+AFVSrIoFGUn3wpPXTizasWTp7h/OXD/rXk6fBPKMAHJVSd27xs95PnFQf0d5Po2SZ+B16MgZHGTr1iVu9ozEfn1SihXTQZESBZ4AAySBvCFw8MLBL7csWBm56vKdy1qPSC+aFbNVMeM2qlYYElRyROpPNLap1VorpEMCJEACJBBYBOS7fr/i4+MTUl9+K3kXiIuLS5VPiI2N9V7Dp9LExEQxVTabzSeBbBrFxMSIsBF/NlV93Rwfbwh5cBaRw/E1tKzaaWQM0gdwMbN2uz2rOHK/DcqCDIaQ+9bZtwAQoQ8n+9q5rwFZI/RBQ8iCT+6DylELp9Mp5jRHtXNfCZGLIQBR7ltn2kIjo5dsaHDF8a3GjAkfXaVUZUdKisucTofTKZtkpB1NTlOK2+vwxSNfRXz97fYlRy8cxQB9M2DBqRLmW/PMWqXYU8SE6q4seoyPj4cyDI4o0X0JcWH6KrsD11dZqGn6BpGxJdnEzNqSk9FjrM0W3ajhtQmP3h45PLFG9dRdVuy4uVyiuiPt5buI64CBkHdzOFJEB4bpC3kE4T0AP/tNU0/9x2cpW5D1TueO1yY/eatt69iUFMwgdhgxoThmsWqEoQsjDiUtVCGOpVaii4MjCJowOLoIZhSBuLCMm3Qpcaa+sWKpi5omok2oQWQ0fThap/o6AjuW+soiYGjC9JXV1OwGv7Fq8cPROs25s/vkns82fPHjnmXnb57XPqrgjCVLshkfYUyS6xR87+zYvla7aV2ntK/eLi42LtPPWDnegF0RMcNy3CJ3FQEB4jC9PuyJ7rGriNOvQReqiBYxwxC/6FH3pUHktcjh6B4zBCELLDA4WNXdgEXMLA4EfcWhjLBh+spqathVIA4ziAxkIQ6Do3Xqv6NdjiF+/9W8KuCdVMyp163+FyJyYIEZREZfWW28kEXMfLZR7BtckkCOCLASCeQ7gVbVWz7TbfrApgOKW0towUgmCZ/XrapFkRWtEM7xqye+27N0xcFVF25fxCqNBPKBgCQl1a4VPWbU7UlPJDRrmg8BsMvsCKSULh3bu+ftaZMTOrRzWizZVed2EiABEsgpgWNXji3Z892qw79cunPJvY2qqFbF4rpX6lbaqErjad2njmg+rGyxsm7FdEmABEgg/wiwZz8IMNvoBzw2JQESIIH8IICUYo/63Z/pPq1tjTbu/Yuco0W1yFK6c/vxq8fxWf+XQ6sv3k73Wd+9LX0SMJqAvVzZ2AH9bs54Jq5zJ0fx+7lyo/ulfmYEnKqa2KhR9Pixt6ZMSghvhdXMarKcBEiABHJL4PjVE0v2LF156JcL6e934jMMbo565BmrhFQe13bsxA6P1S5XK0cdsRIJkAAJkECBJyCH+P0qVqxYcOrLbyXvAsWLF0+VDy5RooT3Gj6VBgUFidmxWCw+CWTTqGTJkiJsxJ9NVV83G0QenEXkcHwNLat2GhmD9AFczKyqqlnFkfttUBZkMITct86+BYAIfTjZ1859DcgaoQ8aQhZ8ch9UjlpofwglR7VzXwmRiyEAUe5bZ9pCI6OvrNZfWKWwMW1HT+8+tVm1prKCT+9ppipqkCUoyGzFIaC4vY5fP/H9/qXrT/wWbYvGkHNiwIJTJSwnlXNeR1HTHsDUXVnEgHMjlGFwRInuS4gL01fZIOBakJq+QWQs1rTH4ixms9aphxNcrpzUt3fS3JnJI0eYqlRJ22vd9+CMvqLI915Kxq16lMiyIqe+FBmd6W+p2q6FgpcBXbik7/2fkyGYKlWyDxqY+OIcx9jRlgcaeMyRtoodRryf4pjVCrNycr8NXQSlvnLfNEctUrVdixzVznElHEEu0aAgODlulLuKQh/L3DXLcW3xxopljlvkqKI2oQaR0fTh5Cig3FcCc2G5b5pVCwRshKzWpWrwG6sWPxyt08yc83cvLD+4/Jcjqy/fvYRznmZm1RJsCbKarYqiaifCUsVKDW42cHa/md0bd9M+4ejoYFdEzDAdNd2lAAHiMH0/7GFvEadfgy5UES1ihiF+9+Ho6BtEXoscjo7RalKQBRYYHK1QRwdYxMziuNBRFlJQRtgw+EYYdhWIwwwiA1mIw+DoGL92OYb4dZR1l8I7qZhT90IdfUQOLDCDyOgrqw0csog53fMvAhOXJEACJEACgUKgTvnaT3SaMLXH5MZVG7nHLMuKRbGYZVWSJPfyQxcPzd+6cEXkyku37v9Gu3sF+iSQBwScspzcvFn81Kfip06ydWjnDCmZB52yC6fZnNyyefyTE+KnT7G1a+O0WsmEBEiABHQkcOLqicXbv/1hz49nbkS5y8qSbFHMZkWV3L57UdxavH+TvjN6PNOjfndFTrsN6d6KPgmQAAmQQEATYLYxn6aP3ZIACZCAfgSaV2/2TK/pT3V78oHKDdxVRc5RdX2IT5dzjDx/4MuI+SsiV12Jvupenz4J5DGBlEqVkvr1iZ35XPxjDye3bO5g/suYCUgJrZg4qH/snJmJw4akVK9mTCdUJQESKLoETlw5+e3OJd/tWnr6xhl3CvfyjGb3PGOQ2dq3cZ95A+cOaTG4VHAp9/r0SaDwEuDISKDIEWC2schNOQdMAiRQWAm0qtlyRp9nJ3WdWL9SPfcxKrLq+o0kV87RvdgUeT7y8y1f/HJg9dU7zDmmI8OVvCYgSSm1ayERFjd3ZsJDI+0N0u3AeR1MIerPGVLS1qFd/FNPxE+bnNymteneV90L0RA5FBLwkwCb+0vg9LXTS3Z+/93u709dO+2uJUmSWVbNSro8oyqrPRv1mDfohRHhw8qXLO9enz4JkAAJkEAhI8BsYyGbUA6HBEigqBMIDwuf2XfGhM6P16lY250Fco4WZB0lzy8r7T2377MtX64+sOZ6zHX3+vRJIB8IqKq9UcOEcWNiX5ydOHhgSlgNp5Tusdx8CCkAu3SGhCQjyfjkhNhZM5L69UmpWiUAB8GQSYAECjqB09fPfLdz6eKdS05eO+keq5SaZ7QoFjn9bc5uDbrMGzR3dOuRoSGh7vXpkwAJkAAJFEoCzDYWymnloEjACALUDCQC7Wq3mdN/1qMdHw4rH6bFjbSNoqgW1aJI6XOOTueec3s/3/TlmoNrb8Tc0OrTIYH8IuAMDk5u3Sp+wmPxzz+b2Le3rdb93Ti/Qir4/TqKFbe1bRP/xOOxs55LRJKR35gu+HPGCEkgMAmcvXH2h90/Lt7x7YlrJ9xHkFmesVPdjvMGvTC23ZiqZaq616dPAiRAAiRQkAn4GRuzjX4CZHMSIAESKLgEOtbt8OLAOQ93GFejXHUtSskkqQoyjhYlfc4xxZmyO2rPZ5u+XHd43c2Ym1p9OiSQjwQcpUJs7dveeWjUjVkzYkaNSA5v6SjJPymTbkIcJUsktWkd/fC4m89Mje/TK6XG/YM9XT2ukAAJkIDfBM7dPv/Dnp++2b746JVj7mKujxaykvF5xra128wdMPuRjuNrlqvhXp++PwTYlgRIgAQCggCzjQExTQySBEiABHwn0LlepxcHznU9U1D6/hcqJUlSFa85R/vOM7u/2IKc46/R8Xd875UtSUBXAk6z2VavbuKQQXGzZ8RNnZTUs3tKtSL9jIw9rKate9f4Jx6Pm/18dy/5xgAAEABJREFUQt/eyaAhSboip1juCLA2CRRuAhdvX1x16JdFO789evlo+pFKKvKM+EAhq+7l4WGtZvabMbHz47Ur1HIvp08CJEACJFBECDDbWEQmmsMkARIo0gRkSXb9XtLgFx5qM6py6UoaC0mSvOYcbSnJO8/s/HrH11tObb2bcFerH3AOAy6UBByVKtm6do6fNDH2xdkJDw5LbtzQUTQeeESGMQkZxomPxbz2SsKER+HzScZCuYdzUCRQoAhcvHXx5wMrv93zncfzjAgSeUZrhjxj8+rNnuv99KSuT9QP5Z/8AiQaCZAACRRRAsw2FtGJz99hs3cSIIF8IaDKao+G3ecNeGFk6xEVQypoMWSWc0xMse08u+vrnd9sOLqROUcNF52CQ8AZHGxv1jRx9EjXA49zZyWMH4MspL1ubWex4IITpD+ROFXFXrMGsorxEx6NefUlZBht3bum1OQXEv2ByrYkQAI5JXDx9qXl+1bMj1h4+PIRjzapeUarkv55xqbVGk/vOXVqj8kNqzT0qM9VEiCBIk2Agy+SBJhtLJLTzkGTAAkUYQIWs6V3o14vDpw7vNWwsiXKaiQyyzkmJCdGnNr2+eYvNx3fHJMQo9WnQwIFioCjeDF7/XpJPbsnPDI+9oXZcc9MTXhwmK1Du8D6wjXypClhNZLbhCcN6Bf/xOOx8+YmTHzMlWEMq2lS0v9xpwJFn8GQAAkEIoHMY74SfWVl5Kr5WxccvHjQvZZkMnnNMzas/MDkbpOm95zWtFoT9/r0SYAESIAEiiwBuciOnAMnARIggaJMoJilWL8mfV4a9MLQloPLFCutocgs5xhvi99yYutnm7/cfHxzdHy0Vp8OCRRMAo7y5e3Nmib16xM/aWLMa6/ET3kSycek7l3tTZukVKnssFoLQtiu3GLNGrbWrZL6941//JHYOc8jTxo/4bHEQQNs7dq4viWtpvsdtIIQM2MgARIo3AQu3rq4MvKXz7d8uf98pPtIUz8emK2KxeN5xnqV6j7ZdeJzfZ5pWbOFe336JEACJEACRZwAs41FfAfg8EmABHJGoJDWKmEtMaBp/3mDXhjUbEBIUEltlKkXFapVMavpvyQVb4vbfGLrpxs/W31gzaXbl7X6dEiggBNIqVwZyUdb964JI4fHT34y7qW5sXNnxj/xeOKwwbYunZLq10spX96p6p/aQz7RUb6cvXq1pPr1E1o0T+raOWlAv8RRI+InPhY7e4YrtzjxsaTBA23t26bUCnOWKFHAMTI8EiCBQkzg+JUTS3f9MD9i4f7z+92HKZkks4yPBBZVkk2SpG2qXaHWhM6Pzer7fOuwcK2QDgmQAAmQAAkIArL4J1CXjJsESIAESMBvAiHBIYNbDJo3+MX+TfoWsxbT9CSTlPqFKYsipfsKpy0lec+5vV9unb90z08nr57S6tMhgQAi4CxePKVG9eSWLZJ69Yh5cNitJyfcmP187Msvxr44O27mc7HPTI2b/CTSkfEPj014aFTiiKGJg/on9e2d1KNbUs/uSb17Jvbvkziwf+LggQnDBic+ODxx9IMJY0YljBuT8Oh4ZBLjp02OnfN8zGuvIJ8Y98y0O4+MvztiaGy/Pkndu9ratUlu0jilZg1n0fjLNgG0SzBUEiiaBFIcKfvORS6M+Or73UuPXT3uDkF8DLC4/g5Muo8BNcpWf7jD+LkDZrer3da9Pn0SMJ4AeyABEggYAsw2BsxUMVASIAESMJRAmWKlh7Ua+tLAF/o27hNkCdL6cl1sKCouNtT0OUdUOHb56JJd33217ZvI8wccDgdKaCQQ0AScZrMzONhRKsRZvryjSmWkI1Pq1bU3eiC5ebPkNq1tHdvbunWxde1s69wxuX275Latk1u3srdskdysSXLjRvaGD9gb1LPXqY1MYkpoRT6oGNB7AoPPJQFWD0gCMQkxW09s+3Tj56sOrDp/64L7GCTJ9Twj3vqV9F9xqFy68th2Y14cNLdzvY7u9emTAAmQAAmQgAcBZhs9gHCVBEiABIo0gfIly48IHzZv4NxejXqoikVjgZyj4so5WjPmHM/dPLcicuWnGz/bdnJ7bGKs1oROfhNg/yRAAiRAAiTghcDVO1fXHVn/6abPNx7feDPupnsNSZLNsmpRLLKc7nnG8iUrDGk2ZE7fmd0adJElXkK6M6NPAiRAAiTghQDfKrxAYREJGEmA2iQQAARCQ0JHtR45s/dznep1cr/ekEwmRVGt+E9WJElyH8mNuJu/Hdvw2aYv1h3+9drda+6b6JMACZAACZAACRQEAmeun1227+fPNn+x8/SuhOQE95BkSeQZzbKcLs9YrkS5oc2HPN/z2a71OpsVs3sT+iRAAiRAAtkSKLIVmG0sslPPgZMACZBANgRCS1Yc3mzojJ7PdK3fxaOqkvrgg1lWJUly3xRni9t5Zuenm7/AxUzUjSj3TfRJgARIgARIgATyi8Dhi0cWb/920Y7Fhy4e8ogBeUaLYkYm0SPPWLpYqSEtBs8bNLd3o5640ejRKtBXGT8JkAAJkIChBJhtNBQvxUmABEgg4AlUKVVlXPsxLw+e16tRzxLWdH8zF5clFsWCnCMuVNKN0+nExczX2xct3rHkyMUj6TZxhQRIgAQyJ8AtJEAC+hJItCXuOrP7802f/7Rv2ekbZzzEFUkReUZJSndVWKV0pQfDh7006MWBzfp7vPV7KHCVBEiABEiABLwSSPe+4rUGC0mABEiABIo4AQy/Wtlqo1o/+PKQecNaDgktFYoSzZBzNCtmXK545hxNptPXT/+4b9kXW77EpQ4ueLQmdEiABEiABEiABAwlcCv21oZjmz7d9Nnaw+uuZPiFk9Q8o0VVVI88Y71KdR/pOP7lIb/r07hPSHCIoRFSnARIgARIoBATYLYxgCeXoZMACZBAHhMoXax0/6b9Xh407+H2Y+tUrO3eOy5XRM4RFzDu5fAvR1/Bpc6nmz/fdHzzrdjbKKGRAAmQAAmQAAkYRODCrQsrI3/5dONnEScj7ibGePSiup5nFHnGdL+F0rJmi6k9Js/q+3ynuh0z3j70EOEqCZBAPhBglyQQUASYbQyo6WKwJEACJFAACJhVc+f6nef0nzW5+6Rm1Zu6R4Sco6q4/pZlxpzj3YS7W05s/XTTZ9uitt1MTPcXMN0V6JMACZAACZBAIBEoSLGeun76u11LF0R8tf/8frszxT00ySSpsmJVrYrreUZJ24Q7hZ3rdZrTb+bkbpOaV2+mldMhARIgARIgAX8IMNvoDz22JQESIIEiTaBljRbTekyZ2W9Gx7odkGfUWEiSpCoqLmlwYSOZJK0cjt1hP3r9+K/nNkRc2pbxB6RQgUYC+hCgCgmQAAkUGQJILJ6JPvPr+Q3LIpefuHrCY9yyJJtl1YJbgbLqvql0sVL9m/Z9eci8hzuMqxNax30TfRIgARIgARLwkwCzjX4CZHMSIIHcEGDdwkigfmi9Rzs+/MqQl/o07h0SVNJ9iErq5Q0uciTJ8+3mYuyl5Qd+Xhjx1b5zkSnpn79wV6BPAiRAAiRAAiSQGQHxvYGfjizffW3vzQTP7w0gz2hRzGbFLMuKu0LVMlVHth7x8pCXhrUcGhqS7reY3avRJwESIAESIAGfCaRe/vncmg1JgARIgARIIJVAldKVHwwfjkuXEeHDqpSulFqWtsBFDq52LLIZlz1pRff+OX/rwqoDqz7Z8HnEyW0xCZ6/LXWvFv8lARIgARIgARJIR+BK9NW1h9Z9vOGzTcc3x2T4cUZFUiyKBXlGj7t99SvVf7zToy8Pnte7US/+sel0QIvWCkdLAiRAAoYTYLbRcMTsgARIgASKDoGQ4JC+jfv8bvBLD3cYXzf917IkWcZlD9KOiuz51nMr7uaGYxs/2fTZusPrrt65WnRwcaQkQAIk4EaALgnkiMDpa6d/2vvT51u+2HV2ty0lyb2N65dMZMWiWtT0P86IOuFhrab3nDqz73Pt67RDNZTQSIAESIAESMA4AnK836/ExMSk1JffSt4FEhPT9BMSErzX8KnUZrMJrHa73SeB7BulUklKTEzMvqpPNaAsuvCpdaaNNNmEBD2Ba/0lJCSIsOFohTo6iF/MbEpKio6ykIKyiBy+EabpG0QGsiJ+OPrGL2QRv76ymprT6RRzqpXo6yByMQR9yUDNCFn3sQt9xO9eqKMPZdFFbjWTEpNaVW0xrcuUiR0eb1K5kdPh0MzkNMmSYpZULOE73F7xSfHbT+38ZONnS3f+ePTiscSERB8tKTHZlgxLTPJVIV3XniJgAnEY3kd8jDAT/aTEJMjCEvHKpI4/PdpsafpJSUn+6GTW1p5sF4dqcrI9szo+lCclpYVtS7L50DwnTaCcLPYZA7AjAOwqQh9jwar+lpQo9BOTPHdXf/pKuvdJyZGS4o9OFm0DlbwxwDVQ2E/EhGLP0Qr1dcShiqW+sjZb2tGKIeirnKYWsORtSbZkW+obk38nmT2n9y7YsvCb7YsPXjjs9v7pwCclySQpeHuVzbJJNqHA4RDvvChsX6vdcz2eHt96bJ2ytXP7hi7qG/eRBrsKLDExwC6XBBYsETnihwERVvUyHPs4PGEGXagiWsQMQ/x6xeyhA2XowzzK/VzVZDEEP6W8NocsYobB8VrBz0LEj2mFORwOP6U8mkMZYcM8yvVa1fQNIgNZBA+Do1fMQgeaMMQvVnVfYjaF6a4sBBE54ofpSwZq0ITBER3pu4QsxGWcwvw0HCrC/NTJrDlyRkIfTmZ1fCiHptgt4PjQPNsmiBbKMDjZVvatAsSF+dY8i1ZC1ujI/dPPNHzIipnFB69MK/m0AcqBTsaI+PMAi5hQLH2at+wbGTcEI4Br4zEubK0LET+WWklunQdCGzza7pHp3ae1CWsjywqOShimEqaYJLNiVmUVF0godLfDlw9/t/v7RTsX7z63527C3RSkOnJjDjRIra85KNDRAEGogYxw9Fri0jBNyjW7KWl+6lj08aEi1IzRBxDMLMxpcqIrvcw44HpFmK0OyIg62ljEql5LpyMNuOboouxISfuDtrjjo4tg3osYRF47t2iOvkPT9hMtfn31oebEpJpMWMLX06CF/QZmzElG28M1Bx3qaHlA3rdor929uuXkls8jvlh5cFXUzXOYOHeTJRlvpqqkyCbJdQa+t610cOmeDXrO6v38iObDqpaqitH5bK75xO7ocE2tzyIZGxok695RatSuhXuhjr5BQ0DEmEoYHB2j1aQMClvTh4PIhcHX14QshqCvrFCDrKH6EMe0wnCYih71WkJZmF6CHjpGk8mJvkdIOVk1SNa9a0wlJhTmXqijb9wQxA4DfR2j1aQgC30ZXGgkQAIkQAIkYByBsLI1R7caOavXjJ4NupcMDnHvSJFki2K2uP5QpuJeDv9C9MXfjm2Yv23BuiPrz906hxIaCZAACZAACRQdAkhNHr1ybPmB5fO3f7XtzI6bsbfcxy5JkqqoVtWS+tihF2UAABAASURBVKfYXHlGbWvVMlWHNh86s/eM/o37li9eTis3wqEmCZAACZAACXglIBfz+xUUFGRNffmt5F1A0w8ODvZew6dSi8UiiJjNZp8Esm+USsWK+LOv6lMNKIsufGqdaSNwFrJwMq3kxwbICn3E74dMpk0hK2ZWUZRMK/m0QYscjk8C2TSCrCADJ5uqPm0GGaEPxyeBTBsZJKv1JyYUS61EXwdAxBD0JQ81IQt9fQPW1IzWR+SiC61Hf5yw0LCRbUe+MuSlnrW7lwt2XfzIsiThf1lWZNePTAVbglxpR0WR3V42R/KhK4d/2P/Tkj3fRV46YHMmIaqsDTHjDO8yqyXrmj5utQa5xPG/3vqQFBbsY2TZNLMGWYV+kOutKZvKPmxWzSqOU5hZNfvQPLMmwUHBImyL3sC1HtP0LcbsMEFBiFx0YRB5IS6WYlC6LC0WK2YThkNUF8GMIpZ7r4ybdCkxiHzgnmQ0qkhUYWax1Ep0cYw+ydzbX1z/6hKwp4g1yCWN//U+20BSmGePmaxHJ0Vvj9qxcOfXq4+sOX3jrNu7ostVU5OMQeYgs2KWZcX1TiqlZRsbhNZ7vPNjvxs8r1+zPuVKlfPnXdu9LcLEbg+D417uvw9NmO6yWmBQhj5MK9HX0fTxqU9HZewtOEJhqqrqKKtJIVowgSF+rVBfB8rQh+krq0UOR19loaaFDUeU6LuELKYVpig6X6hCGbRh+gasqWn6AUceTGCIXxuLvo4kpZ1+9ZXV1BA54ofpSx5q0IRBX+tLR0foyziF+WnyvZefOpk1x6EoeoCTWR0fyqGJ4xwm4cagD+2za4Jo0QUMTnZ1fdwOcWE+ts+kGQIWsnAyqeJvsdD3VyWT9ggb0wrTfWZF2Fhm0rO/xYgc4jA4/mpl0h7isEw2+liMaKEJg+OjRHbNMJWYUFh2FX3cjsgRPwyOjxKZNIMmTNuor4NoIQ6Do6+ypgZxYVqJ/07p4qXb12w3qsGDPWp2r1O+DibXzWRVUa2q1aKYFVlxK3e5l+9e2XB84yebPl9xYNXp62eULF9pYStqlrV83agqQl+WZF8lMm2Xppzpdr82IOB7+vpHjsggjuMUJkkmrOpl8j3e0NdLM6MOxGEZy3Up0cgbtEsiSAQPg6OrpX0DRpIkXWXTiSFsWLoi/VaMI4+YYThl6Resm5KRJxnRjeneS6zqtdSA47DVS9NDB9hhHoW6rRpJHmHDsg7V7rAfvHTou13fz49YuOPMzjsJd3D0uZsq413SYlEtiqK6l2M+65atO6jugMldnupYr4P/b9YZFRA8LGO5PyWgAU0YHH90smgLcWFZ1PFnEyIX+nD80fFoC03MKQyOxyZdVhEtlGFwdBHMKAJxYRk3+VOCgIUsHH90smgr9LOo4M8miGNahfmjk7EtlIVl3KRLCYALfTi6CGYUEfoZy/0pQbRCFo4/Olm0FbOJZRZ1/NmEyA0agpD1J7Ys2qaFDS5F3Dh8EiABEiCBPCaAK9IHyjaY0uWpaT2mtKrZ0qN3WUa60WzBQvL8ejWuxA5dPPTd7u8/2/T51hMRt9J/rcxDh6skQAIkQAIkEBAELty6sPbQuo83frIyctXpG2c8YpZMkiopFsWCBLckpd0GEHWCzNbuD3R9rOXDfWr2qlGyhijkkgRIICsC3EYCJJAnBNK9XeVJj+yEBEiABEiABNIINKve9KluT84dMLtrgy5IL6aVpv6DCypcVllVqyoruNBKLbu/uHr32sbjmz7a+MkPe346eumo9gvN92vQIwESIAESCCACRTLUuKS4PWf3fhXxzYKIr3ad3R2TGOuBQZZks6xqDzO6by1XotygZgNeHvzSmLYPVS5Z2X0TfRIgARIgARLIdwLMNub7FDAAEiABEijqBGpXqDWu3ZjfDZk3oGk/XD554FBSL7QsuODK8Kijyek8evnoD3t/+njDp5uOb75295pHW676S4DtSYAESIAEDCAQdTPql8jVePNafWiN17+EpkiuhxnNilmWPR/zDysfNqbt6JeHzBvcYlD5kuUNiI6SJEACJEACJOAvAWYb/SXI9iSQDwTYJQkURgKhIaFDWw75/dBXJnR+rFn1ph5DlGTZrKgWxaJKSsZHHW/G3dxyYuunmz5fsnPpoUuH7Cl2j+ZcJQESIAESIIF8J3A34e6OU7u+3LLg622L9p7fl5Cc4BGSLMlmWXU915/6y4zuW4PMQZ3qdXy29/QXB87p/kC3YHOw+1b6JEACJEAChZdAQI6M2caAnDYGTQIkQAKFlYBFNber3XZajym/G+x61LFiSEX3kUqSpCDnqFpwMYZLMvdNwj957cSKA6vmb1+4+eTWy3cui0IuSYAESIAESCB/CZy9cXbN4bUfb/hk/dH1l6IvZQwm9WFGs9nbw4x1KtYe1WbkH4a98kiH8Y2qNMrYliX5RIDdkgAJkAAJZEqA2cZM0XADCZAACZBAPhKoXrba0JZDcHE1qevEljVaeEQiywouyTJ71PFOwp1dUbsWbP960fZv952LTLQlejTnKgmQQOElwJGRQAEicDsuOuLktq92fPPD/p8OXT5sS0n2CE6S3B9mTHdpVsJaomv9LjP6PDun/6xeDXuULlbaoy1XSYAESIAESKDAEkj3llZgo2RgJEACJEACAU7Ax/BlSQ4PC5/cfdLvh70yqPnAKqXT/RB+to86nrlxZtWBVR9v+nTtoXXnb13wMQg2IwESIAESIIFcEjh2+fhPe3/634aPNxzbeDXGy88Ki4cZLYqXX2asX7n+2HZjXh32u3HtxzxQuUEue2Z1EiABEiABEsh/Asw25v8c5GsE7JwESIAEAoNA5VKVBjcf+OrQlyd3m9SmVriS/lfzZfdHHSXJY0ixibG7zu5eGPHVV9u+2X12T2xinEcFrpIACZAACZCALgSux9zYfHzzJxs+Xbrnh8OXjjqcDg9Z3EUz3/9lxnTXYqWLlerRsPvsfjNn9nmuW4MuIUEhHm25SgIkQAJ+EmBzEsgzAune4fKsV3ZEAiRAAiRAAr4RaFmzxRNdJiLtOLzV0BrlqruLSJLk+lVHxWJRLR7pSFHt3M1zaw6t/XjjJ6siV5+9cVYUckkCJEACJEACfhJIcaQcvnDk+11LP9n46eYTW6/H3vAQxDuUquDNyWL29jBj4yqNHu4w/tWhrzzUZlTd0DoebblKAiRAAiRAAgFHgNnGgJsyBkwCJEACJGAKDanYr0nflwa9OL3n1PZ12llUszsU2SSZZTVIsaiyIkmy+yb4icmJ+87v+2b74vlbF+w4vetuwl0U0kggIwGWkAAJkEC2BK5EX91wdMPHGz/5af+y41dPZKwvS7JFMVvxliQpyDm6Vyhbomzvxr1eHDjnmd7TO9frWMwS7L6VPgmQAAmQAAkELgHPa7DAHQkjJwESKCIEOEwScCfQtFqTxzs9+oehr45sPaJW+TD3TfAVWbUoZpgiKSaT5zesL96+tP7I+v9t+HjZ3uVHLh5JSk4y8UUCJEACJEACOSAQHR+95+yexdu//XzLFxGntt+Oi/ZohMQi7nhZ1NSHGTO8AYk3r9fw5hU+IizDm5eHFFdJgARIgARIIOAI6JZtDLiRM2ASIAESIIFCQ8D1eEijXi8MnPNs76c71GkfZAlyH5okyaqiWnHJJ6uyK+3ovtGUnGI/dOnwj/uWffjr/37ev+LopaPJds+/GZquAVdIgARIgASKKoGYhJi9UXuX7Pz+w9/+t/rQ2tM3zmQkgftbuMtlUSy44yWZJPcKFUMq9nd7MN+c/sF895r0SaCgE2B8JEACJJAlAWYbs8TDjSRAAiRAAgFFoFGVhuPbjZ3be/aw5kPrVPT86StZVsyKasF/3r5hHZ8cf+DCwR/2/vThhv+tiFx14uqJFEdKQI2ewZIACRR5AgRgDIHYxNj95w8s3f3Dh79+9MvBNSevnXQ6nR5dyZJslnFny4r7W5LkeZHVtFrTh9uN//3Ql4dl+NFhDx2ukgAJkAAJkEAhIOD5RlgIhsQhkAAJkAAJFHECIcEhnet2eq7XM8/39fJnPSWTpMhp37BWJQWrHrhwVRl5PvK7XUtdj64cWHPy6imnyfOq0qNJNqvcTAIkQAIkEIAEEmwJB3EXas9PH/32v5WRK49dOW53et6FQmLR9Y1pJfUb07LiMcoqpSsNaj5wTt/Zj7V7pEW15kqGCh71uUoCJEACJEAChYMAs42FYx45Cp8IsBEJkEBhJ9CgUv2x7ca8Oux349uPfaByA4/h4hJRSX3U0aKYFcnzEhGV7ybc3XNu75Jd333460drDq49fd3LN+ZQjUYCJEACJFCYCCTZkw5fOLJs7/L/rP9o+f4VRy8ftaV4/sIG7lThfpVFsbjeQWRVkiR3ArIktw4Ln9x90qtDXxncfGClkFD3rfRJgARIgATygwD7zFMCzDbmKW52RgIkQAIkkPcESlhLdKnfeUafZ+f2n9WrUY8yxUp7xIC0o6q4vv5mdv2wo5d3xuj4O7uj9ize8e1Hv32y/vCv52+d91DgKgmQAAmQQKATsKfYj187sfrw2k+3fvHT/mWHLh22pXj562G4O4UMo0W1KIpnkhEEqpetNqzlkN8Pe+XJrhNb1miBElp2BLidBEiABEigEBLwck1VCEfJIZEACZAACZCAyVS7Yu1RrUfiIvCRDuMbV2mUEYksK2bFjGvIzNKOt+Ju7jy767u9S+dvX7j55KZzTDtmhMiSQkKAwyCBokIgxWE/fuX4ishVH/72vxUHVh6+fDjBFp9x8Egy4q3BijtTriSj5zWURTW3q912Wo8pvxs8r3/TfqEhFTMqsIQESIAESIAEig4Bz3fKojNyjpQESIAEApAAQ9aBQJA5qFO9js/0nv7iwDmDmg8MKx/mISqZpLS0o2JRZUWSvLxX3oy9uePs7q8ivv5s0+cbjm26cOuihwhXSYAESIAECjIBh9Nx8uqpXyJXf/jr/77f/UPk+cjYpNiMAcvS/b/9IstefnOjcdVGD7UZ9fuhr0zo/Fiz6k0zKrCEBEiABEiABIogAS9XUEWQgt9DpgAJkAAJkEDgEUCecXDzgcg5vjAAaccBNcvV9BiDJElK2t+TsaiSglWPCli9evdaxMmIBRELv9j85ebjmy/fvoxCGgmQAAmQQIElcPra6TUH137028dLdn239/y+u4kxGUOVJVeS0fWou2KWvSYZqzQa3Wbka8N//0yv6T0adi9XolxGEZaQAAkUVgIcFwmQQLYEmG3MFhErkAAJkAAJFHICtSqEDW4+aN6guXMHzB7QtH+NcjU8Bow8o6Ko4q8BqLKKq1CPCli9fOfK5hNbv9g6f/6WBVtObL165yoKaSRAAiRAAnlGIOuOom5GrT287sPfPl68c8nuqD3R8dEZ68uybFbMVsWCpSwrkknyqNOw8gOjXEnGV5/pPb1nwx78xrQHH66SAAmQAAmQgCDAbKPgwCUJkAAJkACWZuCNAAAQAElEQVQJmGpXqDW05eCXBr0wt/+sAU371ShX3QOKJMmKrFgU1287Iu2ILKRHBaxejL606fjmzzZ/sXDb19tObb8Wcx2FRdk4dhIgARLIRwJRN8/9emTDJxs+/Xrbol1ndt+Ou5UxGFnCfSTFqlosSDZKcsZz+wOVG4xs8+Afhr3yXJ9nermSjKEZRVhCAiRAAiRAAiSgEWC2UUNBhwSKFgGOlgRIIAsCtSvWHtpyyEuDXpzTf2b/Jn2rlanqUVk2Saor7WhB5jGzL1mfv3n+t6MbPt34GS5xd5zaeTP2pocIV0mABEiABAwicPHWxQ3HNn268fOvt32z/fT267E3MnYkkoyW1CcZFVk1mTyfZGyAJGPrEb8f9sqMPs/2btizUqlKJr5IgARIgARIIBAJ5HnMcp73yA5JgARIgARIIGAI1KlYZ1iroS8PeWlWv+eRdqyaIe0oSbKi3PuStaRkfCIGQ426GbX+6K//2/DJ4u3f7jqzm2lHMKGRAAmQgBEELt6+tPn45i+2fDk/YmHEyYhrMdcy9iKnPsmoJRkznrfrhtZ9sPXwV4e+/DySjI16VWaSMSNEluhFgDokQAIkUEgJMNtYSCeWwyIBEiABEtCVQL3Qukg7vjLkpef7PtejQfdKpSp7yLulHTP9kzKnb5xZe3gd0o5fbJ6//vBvJ6+eSrYne+hwlQRIIP8JMIKAIhCTEHPk4pFVkas//O3j+VsXbD6x9XL0lYwjQJLR7PrDX67fZFRkNWOSsX6leoOaDpzdZ+b0blP7NOpdpbTneT6jJktIgARIgARIgAS8EmC20SsWFpIACZAACRQ8AgUjonoV6w5sMmB27+endZ/at3GfqhkuR3EFq6Q97WhRZQXXtxkDv3zn8o4zO5bs+u79df/5bufSXWd286/KZKTEEhIgARLIgsCFWxe3nohYtH3xv3/974/7lu07vy+T32RUXElG1Zr2h18kz69L16tUd3irYbiZNKP3s93rd6sUwq9LZ0Gdm0iABEiABEggRwSYbcwRJlbKigC3kQAJkECRJIC044jwYa8Mffn5vs/2btyrSmnPC1RJkhRZxfWt6/t6suo17ZhkTzxx7cTaw+s+2/zFl9sW/np8w/GrJ5KSk4okUQ6aBEiABLIhEJsYe/Ty0VWHV//n1w8XRCzceHzTmRtnTU5nhmaSIrmSjFZXklGVXX9d2rNK3Yp1hosfyuj7fL8mfTL+UIZnA66TAAmQAAm4CPB/EsgRAWYbc4SJlUiABEiABEggMwINKjUYGT7i1aGvzOj7bK9GPSt7SzviWhdpR9d1r6ziGtir1M3YG/vP719xcOX7a/+9aPu3W09suxJ9xWtNFpIACZBAkSJw/taFLSe2Ltq5+OMtnyLVeODCwTvxdzISwD0eVVIsitmqWlTFlWTMWKdOxdrDUv8I2Oz+M/t5+yNgGZsESAnDJAESIAESIIECREC2+f2y33v5reRdIDk5WfTgfbOvpSkpKWIeHA6HrxrZtBNhI/5s6vm6Wehj6auA93YIGJow75v1KIU4TA8lLxqI36CZRczCvPSqRxEiN1QfMRqkL2QRP7owwsSEYmmEODQRuRgCfH3NIFktSKGP+LUSfR2hj6W+sjjrYjZhRkeub9juamACyxh/7bK1hjYbPK//C9O7T+1ev0uFkhWcGV6SJCsyLoYtZin1aUenyeF0CnPeezzH5rCfun76t2MbPt38xX/W/3f53p8joyJj4mOSbcl+mT05xZ4C80sk8xigjGmFORxOHbuwJ9uhDHMxz7x3f3pMsad14Y9IJm1Tp8xuLHlX9HbXzNpT7FmFkVt6yXbMJszhcOgp6xZGoJLXJtSeOr9uI9ILVIrdNaHJhuljWoXpFXCajkZGDyY379zce3bfj7t/+tcv787funDDsU3nbp0XYZucaadNcfKUTBLu4phl1SybcWvHZJKcGV41y9Yc2LT/7L4zn+v5TM8GPSqVDHU/q2u+PfWVnJyslejipKq6FrqoZRTBcE2pL/SRcasuJVCG6SLlLgJNWHKyzsC1LiAuTCvR10k25kIVMafOpyklJUXfgDU1dAFD/FqJvg7Ehekri4CNkHUP0lB9iIuZxTHr3qn/PpSF+S/lVSFwyQssiN/ruPwvFBOKpf9SXhUQuRiC163+FBokq4UEfTnR7xfkgADmt5J3AU0fjvcaPpUiYOwTMFDwSSCbRklJSegCpm/Y7r1CGfow90L/faMjN1ofWDCtMFwd+U/DXUGLHI57uV4+ZDGbMAxBL013HchCHAbHvdxP3+iwER7ejzGhMPg6WToZAAEWGJx0G/xbMZqM0foYPYAACwy+joZjE7MJ011ZBGk0GQ0LHNFjxmXN0jUGNBowp9fMJztO7FynU7liZZ0Oh4eBgGLClbFqkVUVV8pYx74uzK3yrdjb+89HLtv/87tr3/9q29cbj248d+OcDddluTc7UhdIXqSabwpZt8JFEQYBs6fYs66Zq61JtiQEDkP8ttyPOmdNcL3ospxVtuW2GjJHiB+W24Y5rJ9scwUPfTi25FyHl1kTuz3tTxg5Hc7M6vhdnha53zreR20Q+WRbWthwbMneu/az3DWbdleS2k+dzJrjTINDFcvMKvhWbkfcqWcY/OubQlJy0qlrpzcc3fjl1gX/3fDRisiVBy8eikuKc4qzIiK+Z0g4yiYJJ09xCoVvcprSqonKqcvqZar1eaD3c92fnt51Src6XSsWq5DxjK2V2Gw2vDHBbDabVqiLA0HIwnRRyyiinX4N6kKLH07G3n0uMfr9GoEhYDCBwTfCNH04Ourj+hRHKAwzq6OsJoVowQQGRyvU14Ey9GH6yhq9z2hhw9E3cqEGWUwrzOFwiBK9llAGbZhegh46mj4cj026rEIWwcPg6CIoRIzeYdAL3pQwoTD4RhiAAAsMjo76RpNBtIhZBpcCYwyEBEiABEiABAoVgQah9Yc2G/xiv7lPdnqic73OFUpWzDi81KdyZItstqhWVVZlSZYkKWM1lFyIvrjt7I5vdi3+eNOnqw79cvTysQRbAsppJEACJBDQBO4k3Dl46fDPB1b8Z8OH3+35fvvZHVfuev8dCckkKbLi+mEKxWKWVQUnTJOUcew1ytXo06jPjJ7PPtv96T4Ne1UrUy1jHZaQAAnkOwEGQAIkUIgJyEF+vywWizn15beSdwFNH473Gj6VImQxr6qq+iSQTSOr1YouYPqG7d4rlKEPcy/03zc6cqP1gUXMrCzrsHu789Qih+NerpcPWcwmDEPQS9NdB7IQh8FxL/fTNzpshCdJaRcS8I0wAAEWGBwd9Y0mY7Q+UAAIsMDg62g4NsVBqruyCNJoMhoWOKLHnCxbhDUf03b074e+PKf/7OGthjWp1sRqDpJkpBbdTDKpimJRzUGqNchstagWRVE966Q2ibPHH7t24pejaz7a8sni3Ut2RO28HnvdYsb7cVamml3/YQHLtrIPFRRFETOrKqoPzTNrYrVYETAM0VvMFmPMDH2YMeIWRVUgDjNI34wPYmrqENCBfohU1SwmFPkcCBtjqWGrGIEhM2sQeYSL2XQZoOgHHGKaucRVM+K3GKMvSa43VkmSvOr7XKgibtWMBSxbEVVVL929vPV0xFc7v/582/x1x9afvHE62WHPeNLDu4aKs4pqscLMFhcX7JSpJ0P3yuVKlmtbp+249uNeHfrK3P6zh7YcXLdy3Zycn7U6FuyGZtcLjlaoiwNBl67ZrItaRhHt9IteMm71v0SLH47/apqCNWAvl7QhAAiYw+Bohf47ODrE6Rcz679aRgVEi5hhcDJu1aUEytCH6aKmiRi9z2hhw9E61dGBrJhZnNZ0lIUUlEEbBt8I0/ThBJC+0TsMUOCdVMwpfCMMwDGtMDg66htNBtEiZhn/+Gk4GwrzUyez5ojSCH2cu8VugUM9s679LBdhI34/dTJrLvSxzKyCb+UIGJow35rnpBXEYTmp6UMdxG/QzCJmYT5ElZMmiNxQfcRgkL6QRfzowggTE4qlEeLQRORiCPD1NYNktSCFPuLXSvR1hD6W+srirIvZhBkdub5hu6uBCcy3+OtVrjugef9n+zz9t9F/ntL9qR4Nu1crWw2fVFxmkiRhYCQjz6Di0hppR6tiNsuq4rqqxhW2p12Nubr9jOuBx/d//c/ygyuPXD2a5EjC9bgXU10X6dD1ssli9r8QyphWGJIA/qtpCqoZeQbkXRUXcz3i1JQ1B9IIHqaV6OwYTN4FSE1FpKh6Rm5WMZsw7I96yrpNoqK6Yg888tqEqmbDyLgmFDk7g/QxrcJ01tfIuM2yRxcxtpj9FyOX7vvh7XXvfrfn+93n9tyMuyVLnmc2lCiybJHVINUSZA6yqBbsK7KsaCdJ6d6rYZUHhrYcMrv/zL+O+vOTXSd2b9i1Wrmq7mfsXPlq6suMic1Vs+wqp6q6FtlV9HE7YIgJRR8+SmTXDMqw7Grlejs0YboD1+KAuDCtRF8HkRuhD00xoYqi6BuwpoYuYIhfK9HXgbgwfWURsBGy7kEaqg9xMbM4Zt079d+HsjD/pbwqBC55gQXxex2X/4ViQrH0X8qrAiIXQ/C61Z9Cg2S1kKDPb1Jjx6CRgO8E2JIESIAEfCNQ3Fq8Zc0WY9qOfmXIS7DRbUY2rdY02BLsoYZLa1xg4zIbF9sWxazKiix5f+9Osiceu3x0ReTK99d98OnGzzcc3XD/Lyp4iHKVBEiABPKQQIrDfvzKidUH1vzn1w8/2vDx2sPrTl8/Y7r3d7E8AlEkxSyrFuRYFAtyrshDelTAaoWSFbo16DKp68S/j/7rjD7PDmzWv15oXZTTSIAESIAESMBYAlTPMQHvVyw5bs6KJEACJEACJEAC/hKoWqZqz4Y9JnR47LXBv3+y8xO9GvWsWb5mRlFcdSuyalbMVtVqkc24Jse98YzVUHIt5lrEqe1fRXz95sq3l+z4PuLktnM3zzucDmyikQAJkEAeEEiwJZy8emrD0Y1fbfvmjZVvfb976Z5ze+/E3/HaNW6i4FYKbqjg5IabK7KsZDy5KbLStGrjIc2GzOj53KuDfze23ZjwsPCQ4BCvgiwscgQ4YBIgARIggQJGgNnGAjYhDIcESIAESKAIE5Al+YHQBiPDR8wbOPdPI14b335seFgrr5fTkizjmtyS+viPGa6kSCYpIzm7I/nk9ZMbjuGC/+u3177z9c7FG45vPHr52N2Euxkrs4QEdCZAuSJG4EbczYOXDq05vPbjTZ++s+a9Jbu+iziFWx3nvGJAPhG3THDjBBlG3ETBrRRJ8nJhUrV0lT6Ne0/vOfXNMX9/quukrvU6VytT1asgC0mABEiABEiABAoOAS9v6gUnOEZCAiRAAiSgPwEqBgiB8iXLd6nfeVLXJ/4++q+z+j0/oGm/OhVrZ4wdV+yyrLgyj6oFyUdkHmUp7a+1ZKx89e6Vvef3/bRv2Qfr//vvdR/8sOennad3Xbp9CgyjagAAEABJREFUOWNNlpAACZBAtgSS7clnrp/dfHzzou2L31r19hdbv1x7ZN2hy4dvxd7y2lYyScgw4jSFkxUMJy5J9nIxEmS2tqrZ8uEO414b/uorQ3/3YPjwptWaBJmDvGqykARIgARIgARIoAAS8PIGXwCjLBIhcZAkQAIkQAIkkAmBeqF1h7YcMqf/rDfGvD6xy+PtarctW7xMxrqShCt3xayoVtVqyfJHHtE2JjH26OWj646s/3Lr/NdXvLEg4qtfj2w4fuV4bGIcttJIgARIwCuBW3G3D144uCpy9ScbPvvnL28v2rF484mtZ26ctaUke62fLsOo3vtjL5KUsXKNcjUGNOs/s9+Mt8a9+VS3JzvX6xQaEpqxGktIgARIoFAQ4CBIoJATYLaxkE8wh0cCJEACJFCYCJSwlmhbq82Ezo/9ZeSffjd43vBWw+pXri9JXq7bkXhU5Hs/8igyj7IsSV5quvg4nRduXdh+evv3u394f92///Prh8v2Lt8TtffqnauurfyfBEigCBNwOBznbp2POLltyc7v31n93ke//W/5/hX7zu+7Hns9MyqS5PYMY5YZxuLW4m1ru85pfxv155cGvTC0xeD6ofUkk5SZsvHl7IEESIAESIAESEAHAsw26gCREiRAAiRAAiSQ9wSql63Wr0mfmX2ee3f829N6TOnWoEvFkApew5AkGZlH1++jKRYLrvxlVZay+gBwJ/7OoUuHVx9c89nmL95c+dbX2xZtPLb59LXTibYkr/rGF7IHEiCBPCVwJ+HukYtH1hxc+8WWL/+x8s2vIr7ecGzjyWsnE5ITMovDlWGUFbPrz1i5ftVBVVTZ2x97Ec3rVKw9pMXgeYPmvjnm7xM7u57XLl2stNjEJQmQAAmQAAmQQCEgkNXFRiEYHodAAiRgJAFqkwAJFAgCuKpvVr3p2HZj/jj8D/834g9wmlVrimt+r8HJJkmRRUbAKr5trUiKZJK8Vkah3WGPuhm19eTWxTuX/GvNO//77ZOVkav2nz9wI+YmttJIgAQKDYGLty/tOL3rh90/vr/ug/+s/++P+5btjtpzOfpKFgOUJJw+FO13GOEokiyZJK9NShcr1bFuh0ldn3hr3Btz+s8a2Kx/zXI1vdZkIQmQAAmQAAmQQAEkkKuQ5FzVZmUSIAESIAESIIGCTKBCyQrdGnSZ1nPKuw+/PbPfjGEthzSp2ijYEuw1Zin1mUckKy2qxaJYUjMFCtIHXiuLwptxN/efj1wZufLjjZ+8/cu7i7d/u+XE1qgbUckpdlGBSxIggUAhkJiSdPzK8fWHf5u/deHrK96Yv3XB+iPrj145FpsYm8UQZElWpdQMo2rBeQMnEDnzZxjLFi/Tplb42LYPvTLkpb+N+sujHR8OD2sVbPZ+RsqiU24iARLIggA3kQAJkEABJMBsYwGcFIZEAiRAAiRAAjoQqB9ar3/Tfk/3mv7W2DdeHfry6NajwmuGlyte1qs0koxIGSBxgPSBK/kom5FQQFrBa2VRmGRPPH3jzKbjm7/evuifq976du93e67ti7p77nZCtKjAJQkUZQIFcOwpDvuV6Ct7ovbuuLxz5Zlflp1c/v3uH3ac2XHx9kWT05lZwJJJkiVFlRWLYraqVrNiVrCGDKNJ8tqkWpmq3Rt0ndR14l9H/vkvI//0RJeJ3R7oWrVMVa+VWUgCJEACJEACJFAoCTDbWCinlYMiARIgARLwTqDIllYpXbljnQ5jWz80r/+Lf33wz5O7TerVqGet8mFegUgmSULqUbn/R2Zy9tjjjdPRp3de2fXtviV///mNzzd/vnz/ih2ndp65fjYuKc5rRywkARIwlMDtuOjjV45vObHlh90/fvjbx2+sfOvzLV+uPrgGdwXikrM6KnEKUCQFB764/WBWVEVWUeg1WqvZ0qhKw8EtBk3rPvWvw/88o+dzo1qPDA8LL1OcP8XoFRgLSYAESIAESKDwE2C2sfDPcUCMkEGSAAmQAAnkGYGQ4JIta7YY1frBFwbOef+Rd2f1e35Yy6FNqzbO4gvXyD3m6rFHp8l55c61gxcOrj/666Idi99b++9317z/9bZFaw+t3X8u8kr0lRQHv3mdZxPOjooKgQRbQtTNc7vO7F4RueqLzfPfXPnWh7999P3uHzYd33L0yrHbcbeyACFJkiIp2gOMFsWMQx4HPsq9tipbomzb2q3Hthvz8pB5/xr31rO9nx7UbED90Hpmxey1PgtJgARIgARI4D4BekWAALONRWCSOUQSIAESIAESyISAIsv1Quv2b9p3eq9pb4194/dDX3m4/bj2tdtVLFXRa4sMjz2m/dqjLOETheS1iSiMt8VH3YzadXbPygOrPt/y5RuuPMj/lu76YcuJLcevHL8dxy9fC05ckkBOCTicjmt3rx68cPjXIxsWbf/2/XUfvLPmva+3fbP28LrI85GX71y2Z5fTx2GrSopFNltUi0WxIL2oyJk+wIiwapSr0aNh90ldJ/5t1J//8uD/Tew8oVuDLtXKVMMmWiEhwGGQAAmQAAmQgE4EcG2gkxJlSIAESIAESIAEApxA5dKVOtfv9HjnR/847Pf/GPO3qT0m92ncu07FWpkNS5JcX7lGksKsmJGwQOZCkZDAVJDFyKyJVn477vaxq8c3Hd/y/e4fPvztozdWvPXFlvkrIlftOrM76kZUQnKCVrOoO9mN32wxBwcHWy1WWc4q4ZudDLcXdAJ3E+6evHpq68ltP+396ZMNn/5jxZufbvpi+f7l209vP3PjTGyWf9pFjA0HJg5Ss6yaJZfBVxQVx7BkkkQFj2WQ2dqoSqMhLQY/3/fZdx9++6VBLzzUZlR4WHjpYvyKtAcqrpIACZAACZAACaQjwGxjOhxcIQESIIGcEmA9EijsBEpaSzav3uzB8OFz+s/+4LH35vSfOSJ8WLPqTYtbi2c2dMkkySZJlbUffHR/8jGzRmnlKU775ejLkecj1x5e9/X2Re+sfu/9dR8s3v7tr0c2HL1y7EbsdYfTkVaV/2QgIMuAjqyvmmELCwKVgM1uuxR9aW/U3tUHVi/Y+tXbv7zzwfr/Ltn13cZjGw9fOno99ka2A3Mdj5KsSgrSixbFYnX/Ay+SlFnz8iXLt63dZly7Ma8Meentcf98tvf0gc36N6jUAHcUMmvCchIgARIgARIgARLwICB7rAf8KgdAAiRAAiRAAiSgNwHJJNWpWKdv4z7Tekx5c8zfXxv+6iMdH+5Yt0NoqdAsupIkSZYV5MCQp0CmA/kOZD2Q+5AlGZuyaCg2xSbGnr5xZseZHasO/bJg+9fvrHvv498++XHPTxEnt528eupOwl1RjUsSKBwEbsTcOHrxyIZjm77b9f2nWz//YMN/v9m1+JeDa/ac23fh9oUke1K2w8RhpUiK+O1Fi2qB4dBTUCAr2JRF87DyYb0a9Xiq25N/H/3XP414bWLnx7s26FKVf0U6C2TcRAIkUFAIMA4SIIECSoDZxgI6MQyLBEiABEiABAosgdCQ0E51Ozza8eHXhr36xpjXp/aYjERkjTLVsw4Y+Q4kH5H7QAYEmcfU/KMZ+UfkR2QpRx9IbsTdPHL56IZjG5fs+u4/6//71qp/LYj4avWBNbvO7D5x5cTVO1cTbYlZx8CtJFAQCCCTfvH2pSMXjyB1vmzfz59t+vz1FW98vPHTH/YtizgZcfLaqbs5SqZLOHBw+OAgsijm1APq/m8v4g5BFiO1KNYapWq0q9JmZr8Z7z/yzosD54xqPbJVzZYhwSFZtMrNJtYlARIgARIgARIo0gRy9OG+SBPi4EmABEiABEigkBAwZBglrCWaV282InzYUx2enNZyykMNR49sNqJ/075NqzUpW6Js1l26nn1M//AjkiaqrCCBgtRk1m2x1ZZiu3Drwp5ze9ceXvfd7qWfbf7iX2veRQrykw2fLdn5/ZqDa3ec2nn08rErt6/EJ8WjfoG1O9F3JkyY8MjDj7zwwgs5CTL6dvQXn38+78V5Y8eOHTFiBNq+8vLLq1auiouLy0lz1skzAjEJdy/cunDowuGtJyJWRK5atH3Rh7/9740V/3x/3Qfzty74cd8ypM4PXTx09e41k9OZbVQit4gDBIeJRbVYVQsS92rao4vZfKSvUrpS61rhw1oOwb2BP414bVLziYNqDwivFF4/tJ4iK9l2zQokQAIkQAIkQAIkkCsC2Xw0yZUWK5MACfhEgI1IgARIoPAQKBdUtmnlJsNaDp3ec+pfHvy/t8e9OXfA7Ifbj+3+QNd6oXWz+M1HIECGEflHRVZVRbWk/swclkisYBUJEWxFnWwNKcjrsddPXju5O2rP+qO//rDnx8+3fvnu2vf/ueqtj3/7ZPGOb1cfWLPt5PajF49cun05NrFApOe2bN1y5cqVGzdvnDt3LtsBLvvpp7Hjxn79zTf79u+Ljo5OSEhA2127d//rnX898sgj+/bty1aBFXQncDfhbtTNcwcvHNxyYsuKyJVfb1v0n18/fH3FG/9e/98FEV8t27984/FNkecjz9yIuh13O8WZkm0A2NtlWcZu75ZbtIrcIg4QHCZZP7pYtniZJlUb9WvcZ2KXx18Z8tK/H3331aGvPNllYv+m/XBvoHzJ8tkGwAokQAIkQAIkQAIGESgissw2FpGJ5jBJgARIgARIIB8IBJmDaleo1bl+5zFtH5rV7/k3x/z99VF/ebb30w+GD29fp12NctWVLJ+rSs25KKrk+jMXVvf8o6wokiJL+Bgj5XBUySn2G3E3T18/s+fc3t+Obfhh37Ivt85/f92/31zxzy8ivly698d1R9ZHnNx2+MKRC7cuxiTE5FDW/2q2JNuyZctyqPPzzz//+4MPMquMzOO8efO2b9+eWQWW+0PA4XBEx9+JuhF14MKBiFPbfjm05psdiz5Y/9/Xf/4Hll9v+2b5/hWbjm+JPH8g6mbUnfg7OXlcUcTj2s8lGbu09p1o7O0WOfV3BmQ129xisDW4bmidbg26jGs3Zk7/mW+Ne+MvI//0dK/pw8OHta3VpmqZqqlHiuiKSxIggUwJcAMJkAAJkICOBPAxXUc1SpEACZAACZAACZBAVgRKFSvVqErDPo17P97p0ZcGvfj+I++8NvzVSV2fGNR8QIsazSuGVMiqscmEvIyEvIzsev7RrJitqsWiWi2KKy+DpCTyNdhqys3L7ky5FR8ddSvqwKWDG45t/Gn/sgURC/+9/j9///mN//764TfbF62MXLXlxNaDFw6du3nenz9Ng7yqLHt+7oqJifnHP/5x5syZnIR84sSJ9957T6tZv179CY9PeO211x555JFatWpp5a+//vrNmze11UB38j7+FIf9VuytM9fP7ju3f8OxTcv2Lp+/deG/133wj5VvYpf4evuiVYdWbz+748iVI+ejL97N0Q8s3h+EZJKQ+8OOqsquHLrlXg4dO7OqqDJSjpLnTnK/caqHPbxamWpta7dFyv6ZXtP+OvJPb6+OuYMAABAASURBVI15Y3a/mWPbjenaoEudinWCzcGpFbkgARIgARIgARIggXwjkM0HmnyLix2TAAmQAAkUYAIMjQR0JBAaEhoe1mpw80FTuj/1x+F/eHf82/MGzX2048O9GvV4oHKDkkEls+5LMpkkSZZlRVFU5GuQebQi/4gspFsKEvkd1DLl5uU0OaPj75y9EbX/fOSm45uX7//5q21f/2f9f19f8cZ/1n/41bZvftj946rI1chG7Ty968CFQ6evnb58+3J0fHRSclLGfhQZWSWLKL927dqWLVsWL178p//70+jRozdv2SzKs10uXLBQq9OhfYd/vfOvsePGtm/fHtnG999/v0mTJmJrQkLC8hw/LCmaFKllgi0BycQLty4ev3Ii8vyBbae2/3pkw4rIlUt2Lv1yy4L31n7wxsq3Ptrw8aIdi1cd+CXiZMShS4cv3r4YkxibW0qS18SimvZji4oscotStrLlS5ZvVr3ZgKb9kZT/w7BXP3j03ZeHzJvY+TGk7BtXbVymeJlsFViBBEiABEiABEiABPKYALONeQzc2O6oTgIkQAIkQAKBTsCsmmuWq9mxbodRrUfO6PPs66P+8trg30/p+tSwFkNRWKtCmEU1ZztGySRJbilIs2K2qhararUolrQvqEqKLCmolK2UZwWn807CnXM3zx29cmzf+X3IRq07sv7n/T8v3rnki63z//vrR2+vfucfK95E0urjDZ+KpOTao+sizmzffXaPSEp+8+M3f3vzb59/+fmWrVs8xTNfP3P6zLbt28T2mjVqvvDiC7J8/1McUq3z5s0LDk57qG3NmrXOHPzVEaFWaJYZ04ibTmxee2TdssjlCyK++vC3j99Z/d7rP//jnTXvIZm4IGLh97uXIsn429EN209vR9rx5LUTl6IvxSX5kVWUxOOKZuxmrp1NzXViEXOB9HqDyg061+s8KnzUjN7PvTP+7T+NeG1aj8lDWw5GUr5SqVDUoZEACZAACZCAiwD/J4ECTOD+59QCHCRDIwESIAESIAESKLoEiluL161Qt2u9Lo92fPiFAXOQf/m/EX+Y0v0pkX+pXrZasCUty5YtI6QXXUlIWVEV1ayk/S2aIAWJSIsFuSFZFV/HliUZNbNVy6yCw+lA0upG7A2RlIy8cGDb6W3r7iUlo8znQ7tVrty7apW+1Sp1r1KxU2iFthXLtihfunGZoBpBOzN5UnLX7l1ad0OHDdUSi1ph+fLl+/btK1Zv3Lxx7OhR4ReCZcY0ovY04vytC7NII+6M2nXw0qFT109fvH3xdtythOQEf2hgl8COoUiKKmPnMWOHsbqy2FY4ZsWMPUrBFllBmhs1c9hRqeBStSvUQhp9VJuRz/V55u+j//qPh/72XK+nhzUb0i6sTc2yNSw5yK3nsC9WyzsC7IkESIAESIAEijwBZhuL/C5AACRAAiRAAiQQaAQqlKzQokZz8d3S3w2e99bYN94a98YrQ16a1mPKmDajezfu1apmy5rlapa0un0LO8sxSiZJhskKEkZIGyF5ZHGlIF2JJItihpllVZdEJKIILlasdOqrTNky5SqVq1C9YlD54OBKwcWrl7BUD9KSkh5PSm65FoGkZPnwCuValY8ueWfZ3mU/71+xKnL1moNr1x/5bcOxTVtObCkeVqJEzZLFa5QsVq3Equ2rj148cvzK8dPXTkfdjDp/68KlW5ev3rl6I+ZmdPydmISYuKT4RFui3WFHbhRR+WwpjpRkezISgrGJsXcT7t6Ku33t7vUr0Vcv3roYdfPcmRtnT149dezK8cMXjhy4cGBf1L7dZ/fsOLUz4uS2zcc3bz65ZeOJTb8e37Ay8pfl+1f8uPen73ct/XbnkkXbF2WdRtx+72lEXdKI2tixGyBXKEuyK6UopXtQ0apasUtgx8DuociKIsmySUJ9rW3WTtniZeqG1mlXu+2AZv0f7jAeicXXhv/+vUf+9frov8wdMBtp9F4NezSs/EBIcEjWOtxKAiRAAiRAAiRAAgFBQA6IKBkkCZBAoSXAgZEACZCAHgSCzcFVy1RtVr1p94bdRoaPeKrbk/MGzf3HmL+9M/6tPwx75Zle08e3G9uvSd82tcJrV6hVulipHPaJdJIkyTBZVjwSkSL9JBKRbrlIBbkqSZI89J2pL1FYonjxCulfFkvaTzqKCh5LZANjE2NikmMsZa3WCkEh1Uqdj7lw6BKSdwf3nd+3O2rPjtM7Ik5GbDq+5bztfKmGpUs3Kl2mSZmz9qgf9i37fvcPi3cu+XrbooURX30ZMf+zzV98vPGT//764b/X/+e9te//a827b6586x8r3vz7ijfgvLXqnXfX/vs/6/7z4W8fffzbJ8uO/FyhXWiFdhWTqiV/sfnLTzd+/tFvn/xn/Yfvr/vgndXvvfXLv95c8c/XV7zxxsp//vOXt99Z8x7KP1j/349++9+nmz77fMsX8yMWfr3tm0XbFy/Z9d3S3T/8tB/p0ZWrDq5ec2jt+qO/bji2cfOJrTujdu85t3f/+f2wgxcOHrl09PjVE6eunT5zI0rfNKKGVMJcSrIiKTBV1vKJSChbXBOqWlwTqphdKcXcP6goyzLy4A0qN+hYt8PgFoMe7/TozH4z/vzgHz947L2/jPzT7H4zJ3R+bGiLwZ3rdURiMTSkoiqrWmB0SIAESIAESIAESKAwEcgk21iYhsixkAAJkAAJkAAJFFUCFtVSqVSlxlUbdWnQeXiroU90mTh3wOy/jfrL+4+888fhf5jR59lHOo7v06h3eM3w2uVrly1RNleckLpC8kqWFdi9XGTqd2xTn4u0pj4Nh+yVRXHlsJBaEk9HIs8lMpJonsPuUux2rWaQ1ar5Ho6iqrKc9tHOnnK/iUe1jKvIhdoddltKUnxS3J3EmNtx0Tfibt5KuG0pY7GUsTqCHJfvXLkWc+1W3M07CXdiE2MTkhNsdpvdmWIqML8OCZiuudAyiZIrk2hWzBbVYnWZ1aq6DHOBQiQTYUra32mR0RDNM2LJrASaFUIqNqiErGLH1J1qwtz+s/426s//fuTd/xvxh+f7PPtox4cHNRvQvk67+qH1ypUoJ5mkzKRYTgIkQAIFgwCjIAESIAGdCch3/X7F33v5reRdIDY2VvQQExPjvYZPpQkJab/dY7PZfBLIplFMTIwIG/FnU9XXzUIfS18FvLdDwNCEYQjea/hXClmIw+D4p+S9NeIXR4ndbvdew9fSuLg4hA3zVSCbdogc4jCDyEAW4jA42YSSm81QgyYM8eemXS7q4jJYzGku2uSmKiJH/DCMJTftsqkLNWjC4GRT1afNkIU4DPH7JJB9I4gLy75qbmokJyeLCYV4btrltK5GBk5O2+SmHmQROUx38oF+kklMTBQzm5SUlBui2dQ1CHhcbFyQyVqleOWmFZt0Ces8tNHgx9s8+mLvOX8f/tcX+86d3GnS6FajejfoFV69Ve2ytcoGlzY5TU6HQwww50vksCTkvxS8VKS3kGRUZAUOEl5Ie8FECsyUYnLYHTCTw2SWVZiKapKipJosKTgNIq0HQxiyomgBoNzhcGCplShyWrYxxS1BiQoOhyMlty9n2njRPLdNc1jf6XAIc6vvEC+nw+kyjNlpwqglpySZXCabMEJZkFElBWaWVJhqUlSTrJiwVZJTa6KVMGg4HCkYf27NLJsrlqzYoGL9dmFtBzTuN77N2Ge6Tn+l/+9eG/DqM52mjW85duAD/TvUaN+gXP3yQeVluw4fqsXB4LbPx4oS3ZdOQAFXp1NfZZwVcW6EYQj6Kgs1yEIcBkeU6LuELMRhGIi+ytAUpq+spoYPveIkgF60Qh0djQwcI2R1B64FCSDCtBJ9HUQu9PUlY9D7qTZ2RCvCRvxaob6O0MdSX1kEDE0YhqCvslCDLMRhcESJvksoi0MVx6zuyhCH6SurqQUoecwjmMAQvzYWfR3xfopp1VdWU0PkiB+GsWiF/jtQgyYMjv9qGRUgC3H5kN+v06dPn0l9+a3kXeDUqVOp8meOHDnivYZPpZcvX8Y+Abtx44ZPAtk0Onz4sAj79OnT2VT1dTOURRe+Cnhvd/LkSSF79OhR7zX8Kz127JjQP3HihH9K3lsDC6YVhiPTew1fS6EsIsfk+qqRVTujyR8/flzEDyerOHK5DTSELPjksmlOq+P9GBMKy2mDXNYz6CRj9K6eB+Qxp2Jyc0k0m+p37tzBbMKioqKyqerTZqPJHzlyRGDBnuNTgJk20oBjcjOt5McGo08yV65cwbTCrl275keYnk1BQwAHH89tOq1DWXQh9C6fuZR4LSE4xlrFUalxUMPO5ToOqT54Zofn/vLgn+b2n/1k14nDWw3r1ahHu9ptm1RtVKtCWIWSFYJz+GdqJAnZduS8QMnTUnNqTodTlhWYIqtYIi8JMyuq7JSddgcMGUktR4lMJZJuTrvTIptTn6A0w3GlJlOczhRncrJdlRUk41wmq47kFHuyXTNsTbXkZFumZrfZnMixOk1I/2VRzbUpOTl1aYem1oW7k5Kc4m4IRpgTg0pxItnqTHbcsxSHzWUpNrvLkuz2pGRYcpItOdFltsQkWFJCIiwxIRGG+8eZWVJiojCv1VBospuszqDSaplQa6WwYmENQhq0Kteqe5Vug2sOGldvzLg6D/Wv1KddqTYNzPUq2Mqr0crdy3fOnYoK3JOM2MOxdGJqU7ON8HU0o08y+AAjDlU4OoatSeFaQ+gbd3rX+tLXwXWdOKUgfn2VhRqAQxkGR5Tossz707suYbuLYFcBFhh2HvdyP33tQvX69et+SnltjmgRMwzxe63gf6HHG6v/gkIh0E8ywCIOVeMuVAUo3ZfYVbDDwLDz6C4OQZxbIA6Dg1W9LA9OMviMhDnFu6peMXvoGEQ+bz7JyEBDI4FCQYCDIAESIAESIAH9CUiSVLZs2dq1a5cLKVe7Yq3WYeH9mvQZ1XrkhM6PPd1r+gsD5vzfiD+8NfaNfz/67t9H//X3w16Z1e/5yd0mPdxh3LCWQ3s37tW+TrumVRvXrlCrYkiF4kHFzWYzkn643+vMzZOSKW6VFUXRBimZJPiIUJJkl8kyspNOhxOG7J6CNUVVYDIaqYpJ1kw1yammuHKRkvelIqlOZAPtDmQDs6jm2mRKVUjV1Lpwd2ST5G6SSXI3DEFfkyS5mKVYueCyVUpUqV2mdsNyDVtWatmxWoeeNXsMrDPgwfojxjUa+0SzCVNbTp7Q5LFxDR8aXnfIgFp9u9fo2qFKu2YVmoSF1CwfXM6qZPqNdX2jpRoJkAAJkAAJkIAPBNikgBOQS/n9Kn7v5beSd4ESJUqIHkJCQrzX8Kk0ODhYzI3FYvFJIJtGISEhImzEn01VXzcLfSx9FfDeDgFDE4YheK/hX2nJkiUhDoPjn5L31ohfzKyqqt5r+FoKZYQN81Ugm3aafmCRR7RgAkP82YzQ182SJIk59VUgm3aIHPHDMJZsquZmM/ZwaMLg5KZdTuukZjAFAAAQAElEQVQiWojDEH9O2+SyHsSF5bJdNtVx1hUTWqxYsWyq+rQZwEXYcHwSyKaRceQxlSLybCLwdbOmjyH4qpFVu6CgIDGzVqs1q3q53IZoBRbEn8umOa0u9LHM2KB06dJVq1ZFqhHvKRjd0aNHv8vktfT7pWtWrNm6dkvk5v2nd526Gnkl7niM6ayjxJViodEVa8eHjW3w0D/H/OODx957a/wbs3s9P6P3s1N7TH64w/jhrYap15TY0zHxF+OSbyeHlgotbi2OvnJiODsqyv3kI5o4U59Zg+NRLsuy4voyN7KROTVZlqEDkyQpt21zWF9WFGE5rG8xW0sXK1OpVOVa5Wo3DG0UXi28U1in3vV6DWk0+KFmox8Pf3Rqu8nPd37uxW5znuv4zFPtJj3cctyDjYcPajigb4PeXet2aVurTbPqTetXqVezYo2KZStmnO4cluDcgr0FBieHTXJVLQ/2ecypmNlcBZZtZRykwALDELKt7EMFAIc4DI4PzbNtgrAhDsNAsq2cqwrQFJarVjmvjNsYmFAYesl5q5zXBHAow+Bk2yrnFYwDrsWAmIVpJfo62FWEPsaio7JB76dahIhWhI34tUJ9HaGPpb6yCBiaMAxBX2Whhj0c4jA4okTfJZRxnMJwzOquDHGYvrKaWoCSx34CJjDEr41FX0e8n2JO9ZXV1BA54odhLFqh/w72cGjC4PivllEB0UJcbuT3q1atWmGpL7+VvAvUqVMnVT7sgQce8F7Dp9LKlStjn4CVL1/eJ4FsGjVs2FCEjUuUbKr6urlWLUPI161bV0TeoEEDX0PLqh1khX69evWyqufrNgDHtMJwZPqq4b1drVppwDG53mv4V2o0+fr16wvycPyLNF1r0BCyIJ9ug34r4iIfc6qfZDolg04yRu/qeUC+Vq20fT4dL79X8PaD2YTVrFnTbzEvAkaTx5uR2Oex53jp3o+iWrXSgGNy/ZDJtKnRJ5lKlSphWmEVK1bMNIjcbwANAdy4k0ytWmnkM0aH3qtXr66dhX7++ednfX39+OOPgCNLcunipZvVa9awWsPm1Zt1rtexX5M+6kX5+rarVzdcjo2489qwV98c8/cPHn3vzbF/f234q3P7z0JSsn/9vrf23og+ePvOkeiqcpVuDbp0qtuxbe22beu0a1uvbZNqTRpUblC3Yp2w8mFSvJR8N9kea1dTlJJBJYMtwRbVLMsKsvy4fM2VIWuMgGFIO+aqoXvl4sWKly5ZqlypcqFlQquUr1KjYo3alWoh39e4RsNmYU2b1mjSombz1rXDuzTs1L1xt95Ne/Vv2W9w+KDhbYaObPfg410efbrvtBcGz/7jqD+8Of4fH0784OOnPnx3wtv/ePhvfxzz+5dGvjBj6LNTBj71WJ9HR3cfNbjzoF7tenUM79iqWatG9144SMXOg8P2XpkO/wbuSUYbvLg6wlIr0cUx+iRT35hPMtrYsZ+IHQZ7jlaoi1OrVqYnGV308aEXhyoM8esi6CFiEHmcYBEwLF9O7x5j9G0Vuwrih2Hn8U3BayvtQrVChQpeK/hZiGgRMwzx+ymVWfNatQzZ5wP9JFOrVi0cpzAkYjJD51s5lDGhMN+aZ9sKuwrEYdh5sq3sQ4XAPcngMxImVPf3U42hQeTz5pOMDDQ0EiABEiCBfCHATkmABEjAKwF8bC1hLREaElq7Ym0kJbs90BV5xtuRN5FzrJwUOrbdmEc6jp/Y+bFJXSdO7f7U072mPd/n2dn9Z744cM6dTbcuLI86/9PZUqdK/uOhv7019o13xr/9waPv/vvRd98d//Y/x73x99F//cvIP/1x+B9+P+yV3w2ehyaz+818rs8zT/ecNqX7UxCc0PmxhzuMRxe96vS8te/m7chb1qvqg62HP9Rm1Pj2Yx/t+PATXSc81e3JaT2nPNv76ef7Pjen/6x5A+e+MuSl14a/+ucH//j6qL+8Meb1t8e9+e7D6Pe99x955+1x/0T+9PXRf/nLg//3x+G/f3Xoyy8NfnFO/9kz+86Y3HnSEx0nPNbukSe6THy806MPdxg3ps3okeEjhrUcOrj5wO4Nu7UOC29YpWGNstXLlShrMVu8smIhCZAACZAACZAACZBAQSPAbKOXGWERCZAACZAACZAACWQk0Llz59m+vrp27ZpRMIcl5cuX12pqfz1AK9Ech8MRFRUlVitWrCgcsZQl2ayai5mDQ4JDyhYvUzGkQuVSlaqXrRZWPqxuaJ2GlR9oUq1xixrNw8PC29Vu27lex24NurSu2urO4dvRB2+Zr5n7NOrdo2H3LvU7d6zboU1Y61Y1Wzar1rRRlYYNKtWvU7F2zfI1q5apGhoSWq5EuVLFSiFPGmQOMitm5ExF71ySAAmQAAmQQMElwMhIgAQMIMBsowFQKUkCJEACJEACJFAYCbRr187XZOPsjh07+owkODjtx6ahsG3bNizdTUvqXbhwQSuvde/rWloJHRIIMAIMlwRIgARIgARIIGAJMNsYsFPHwEmABEiABEgg7wmwx3wi0L17d9FzVFTU9evXhe+x3Llzp1bSs2dPzadDAiRAAiRAAiRAAiRAAnlJgNnGvKTNvkjAMAIUJgESIAESKPAEnE6nzzGOGjVKa7t8+XLNd3e+/fZbsVqiRIlWrVoJn0sSIAESIAESIAESIIHCRSAARsNsYwBMEkMkARIgARIgARIIdAJ2u93hcPg8ir59+2pt33777ejoaG1VOMuWLdu4caPwBw4cqKqq8LkkARIgARLIKwLshwRIgARIII0As41pIPgPCZAACZAACZAACRhBID4+/u7du1j6I16iRAnt8cYbN25MnDjx6tWrmuC33347ZcoUbdXd1wqLsMOhkwAJkAAJkAAJkAAJ5CkBZhvzFDc7IwESIAESuEeA/5IACeSOwO9+9zvkHEWb7du3t2zZElnFxx9/vFmzZjNmzBDlWE6dOrVhw4ZwaCRAAiRAAiRAAiRAAiSQLwSYbcwX7AW5U8ZGAiRAAiRAAiRQEAlUqlTpf//7n3tky5YtW7NmzY0bN7TCAQMGvPDCC9oqHRIgARIgARIgARLIggA3kYBBBJhtNAgsZUmABEiABEiABEggRwS031gsXrx41g26deu2bt26zB5dnDVr1ocffhgUFJS1CLeSAAkUfAKMkARIgARIgAQCmgCzjQE9fQyeBEiABEiABEgg7wgY1NPSpUsvpb4iIiKy7QKpRiQcly9f/uqrrz7xxBNjx46dM2fOe++9d/ToUTha4jJbHVYgARIgARIgARIgARIgAYMIMNtoEFjKkgAJ5B0B9kQCJEACRY1Aq1atpk2b9uc///mtt96aNWvWyJEjQ0JCihoEjpcESIAESIAESIAESKBgEjAw21gwB8yoSIAESIAESIAESIAESIAESIAESIAE9CRALRIgARJwI8BsoxsMuiRAAiRAAiRAAiRAAiRQmAhwLCRAAiRAAiRAAiSQ5wSYbcxz5OyQBEiABEiABEiABHQl4HA4klNfuqpSjARIgARIgARIgARIgAR8IcBsoy/U2KbQEuDASIAESIAESCDQCNhsttjY2ISEBKfTGWixM14SIAESIAESIAESyC8C7NdAAsw2GgiX0iRAAiRAAiRAAiRAAiRAAiRAArkhwLokQAIkQAIBT4DZxoCfQg6ABEiABEiABEiABIwnwB5IgARIgARIgARIgARIIEcEmG3MESZWIgESIIGCSoBxkQAJkAAJkAAJkAAJkAAJkAAJkEABIsBso0GTQVkSIAESIAESIAESIAESIAESIAESIIHCT4AjJAES8CDAbKMHEK6SAAmQAAmQAAmQAAmQAAkUBgIcAwmQAAmQAAmQQL4QYLYxX7CzUxIgARIgARIougQ4chIgARIgARIgARIgARIggUJMgNnGQjy5HBoJ5I4Aa5MACZAACZAACZAACZAACZAACZAACRR+AgaPkNlGgwFTngRIgARIgARIgARIgARIgARIgARyQoB1SIAESKBQEGC2sVBMIwdBAiRAAiRAAiRAAiRgHAEqkwAJkAAJkAAJkAAJ5JgAs405RsWKJEACJEACBY0A4yEBEiABEiABEiAB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CZAACZAACZAACZBA4SfAERYoAmlfZytQMTEYEiABEiABEiABEiABEiABEiCBQkCAQyABEiABEiiCBJhtLIKTziGTAAmQAAmQAAkUdQIcPwmQAAmQAAmQAAmQAAkYRIDZRoPAUpYESIAEfCHANiRAAiRAAiRAAiRAAiRAAiRAAiQQ0ASYbczR9LESCZAACZAACZAACZAACZAACZAACZBA4SfAEZIACfhNgNlGvxFSgARIgARIgARIgARIgARIwGgC1CcBEiABEiABEggQAsw2BshEMUwSIAESIAESKJgEGBUJkAAJkAAJkAAJkAAJkAAJuBFgttENBl0SKEwEOBYSIAESIAESIAESIAESIAESIAESIIHCT6DAjZDZxgI3JQyIBEiABEiABEiABEiABEiABEgg8AlwBCRAAiRQRAkw21hEJ57DJgESIAESIAESIIGiSoDjJgESIAESIAESIAESMJAAs40GwqU0CZAACZBAbgiwLgmQAAmQAAmQAAmQAAmQAAmQQMATYLYx4KfQ+AGwBxIgARIgARIgARIgARIgARIgARIggcJPgCMkAV0IMNuoC0aKkAAJkAAJkAAJkAAJkAAJkIBRBKhLAiRAAiRAAgFEgNnGAJoshkoCJEACJEACJFCwCDAaEiABEiABEiABEiABEiABDwLMNnoA4SoJkEBhIMAxkAAJkAAJkAAJkAAJkAAJkAAJkAAJ5AuBPM025ssI2SkJkAAJkAAJkAAJkAAJkAAJkAAJkECeEmBnJEACRZgAs41FePI5dBIgARIgARIgARIggaJGgOMlARIgARIgARIgAYMJMNtoMGDKkwAJkAAJkEBOCLAOCZAACZAACZAACZAACZAACRQKAsw2Fopp5CCMI0BlEiABEiABEiABEiABEiABEiABEiCBwk+AI9SNALONuqGkEAmQAAmQAAmQAAmQAAmQAAmQgN4EqEcCJEACJBBgBJhtDLAJY7gkQAIkQAIkQAIkUDAIMAoSIAESIAESIAESIAES8EKA2UYvUFhEAiRAAoFMgLGTAAmQAAmQAAmQAAmQAAmQAAmQQL4RYLYxz9CzIxIgARIgARIgARIgARIgARIgARIggcJPgCMkgSJOgNnGIr4DcPgkQAIkQAIkQAIkQAIkUFQIcJwkQAIkQAIkQAJ5QIDZxjyAzC5IgARIgARIgASyIsBtJEACJEACJEACJEACJEAChYYAs42FZio5EBLQnwAVSYAESIAESIAESIAESIAESIAESIAECj8BXUf4/wAAAP//EZ3g3wAAAAZJREFUAwCgiNtzv+8EAQAAAABJRU5ErkJggg==" + } + }, + "cell_type": "markdown", + "id": "7d662750", + "metadata": {}, + "source": [ + "## 19.Автоматизация безопасности\n", + "- Группа исследователей готовится к высадке на остров идеальной формы, но спутниковая разведка обнаружила на нём зону зыбучих песков.\n", + "- Чтобы обеспечить безопасность экспедиции, разработана система оповещения, которая предупреждает об опасности в зависимости от координат исследователя.\n", + "- Для снижения расходов было решено создать программное обеспечение, которое автоматически определит, безопасна ли точка местонахождения исследователя.\n", + "\n", + "![image.png](attachment:image.png)\n", + "\n", + "- Напишите программу, которая по заданным координатам проверит, находится ли исследователь в зоне опасности, учитывая несколько условий одновременно.\n", + "- Формат ввода\n", + "- Два рациональных числа — координаты исследователя.\n", + "- Формат вывода\n", + "- Одно из сообщений:\n", + "- Опасность! Покиньте зону как можно скорее!\n", + "- Зона безопасна. Продолжайте работу.\n", + "- Вы вышли в море и рискуете быть съеденным акулой!" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5007fce7", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Опасность! Покиньте зону как можно скорее!\n" + ] + } + ], + "source": [ + "def security_automation() -> None:\n", + " \"\"\"security_automation.\"\"\"\n", + " x_numb = float(input())\n", + " y_numb = float(input())\n", + "\n", + " distance_from_origin: float = (x_numb**2 + y_numb**2) ** 0.5\n", + "\n", + " if distance_from_origin > 10:\n", + " print(\"Вы вышли в море и рискуете быть съеденным акулой!\")\n", + " elif x_numb > 0 and y_numb > 0 and distance_from_origin <= 5:\n", + " print(\"Опасность! Покиньте зону как можно скорее!\")\n", + " elif (-4) <= x_numb < 0 <= y_numb <= 5:\n", + " print(\"Опасность! Покиньте зону как можно скорее!\")\n", + " elif (\n", + " (-7) <= x_numb < (-4) and 0 <= y_numb <= 5 and (5 * x_numb - 3 * y_numb) > (-35)\n", + " ):\n", + " print(\"Опасность! Покиньте зону как можно скорее!\")\n", + " elif (0.25 * x_numb**2 + 0.5 * x_numb - 9) <= y_numb <= 0:\n", + " print(\"Опасность! Покиньте зону как можно скорее!\")\n", + " else:\n", + " print(\"Зона безопасна. Продолжайте работу.\")\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " security_automation()" + ] + }, + { + "cell_type": "markdown", + "id": "4b149818", + "metadata": {}, + "source": [ + "## 20.Зайка — 2\n", + "- По пути домой родители снова решили сыграть с детьми в поиск зверушек. Но на этот раз задача сложнее — нужно не просто найти зайку, а выбрать правильную строку по определённым условиям.\n", + "- Вам предстоит проверить три строки, найти среди них ту, где встречается слово \"зайка\", и вывести её вместе с её длиной. Если таких строк несколько, выберите наименьшую в алфавитном порядке.\n", + "- Для этого используйте составные условные операции, чтобы одновременно учесть несколько условий.\n", + "- Формат ввода\n", + "- Три строки описывающих придорожную местность.\n", + "- Формат вывода\n", + "- Строка в которой есть зайка, а затем её длина.\n", + "- Если таких строк несколько, выбрать ту, что меньше всех лексикографически." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "59f96b88", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "березка елочка зайка волк березка 33\n" + ] + } + ], + "source": [ + "def search_hare_2() -> None:\n", + " \"\"\"search_hare_2.\"\"\"\n", + " string_1: str = input()\n", + " string_2: str = input()\n", + " string_3: str = input()\n", + " result: str | None = None\n", + "\n", + " if \"зайка\" in string_1:\n", + " if result is None or string_1 < result:\n", + " result = string_1\n", + " if \"зайка\" in string_2:\n", + " if result is None or string_2 < result:\n", + " result = string_2\n", + " if \"зайка\" in string_3:\n", + " if result is None or string_3 < result:\n", + " result = string_3\n", + "\n", + " print(f\"{result} {len(result) if result is not None else 0}\")\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " search_hare_2()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "fb74e51b", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.12" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/python/yandex/conditional_operator_2_2.py b/python/yandex/conditional_operator_2_2.py new file mode 100644 index 00000000..19ed670d --- /dev/null +++ b/python/yandex/conditional_operator_2_2.py @@ -0,0 +1,737 @@ +"""2.2. Условный оператор. + +В этом параграфе мы научимся управлять поведением программы: выполнять +одни действия в одних ситуациях и другие — в других. Вы узнаете, как +Python принимает решения с помощью условных конструкций, как работают +логические выражения, и как применять их на практике. +Мы также разберём новые конструкции вроде match-case и +полезные встроенные функции. +""" + +# ## 1.Просто здравствуй, просто как дела +# - Ура, вы снова здесь! Это значит, что мы начинаем вторую часть вашей практики. +# - На этот раз вы будете тренировать навык работы с условным оператором if-else. +# - Вы уже знаете, как написать программу, которая знакомится с человеком и спрашивает его имя. +# - Теперь напишите программу, которая сначала познакомится с пользователем, а затем +# поинтересуется его настроением. +# - Формат ввода +# - В первой строке записано имя пользователя. +# - Во второй — ответ на вопрос: «хорошо» или «плохо». +# - Формат вывода +# - В первой строке должен быть вопрос «Как Вас зовут?» +# - Во второй строке — «Здравствуйте, %username%!» +# - В третьей строке — вопрос «Как дела?» +# - В четвёртой строке реакция на ответ пользователя: +# - если пользователь ответил «хорошо», следует вывести сообщение «Я за Вас рада!»; +# - если пользователь ответил «плохо», следует вывести сообщение «Всё наладится!». + + +# + +def simple_hi() -> None: + """simple_hi.""" + print("Как Вас зовут?") + name: str = input() + print(f"Здравствуйте, {name}!") + print("Как дела?") + mood: str = input() + if mood == "хорошо": + print("Я за Вас рада!") + elif mood == "плохо": + print("Всё наладится!") + + +if __name__ == "__main__": + simple_hi() + + +# - + +# ## 2.Кто быстрее? +# - Продолжаем работать с условным оператором if-else. +# - В главной велогонке года участвуют более тысячи гонщиков, которые должны пройти трассу длиной 43872 метра. Задача — определить победителя. +# - Нам известны средние скорости двух фаворитов — Пети и Васи. Помогите узнать, кто из них пришёл к финишу первым. +# - Формат ввода +# - В первой строке записана средняя скорость Пети. +# - Во второй — Васи. +# - Формат вывода +# - Имя победителя гонки. +# - Примечание +# - Гарантируется, что победителем стал только один. + + +# + +def who_is_faster() -> None: + """who_is_faster.""" + petr_speed: float = float(input()) + vasya_speed: float = float(input()) + + if petr_speed > vasya_speed: + print("Петя") + else: + print("Вася") + + +if __name__ == "__main__": + who_is_faster() + + +# - + +# ## 3.Кто быстрее на этот раз? +# - Давайте немного усложним задачу и поработаем с вложенными условными операторами if-else или оператором if-elif-else. +# - Три велогонщика снова хотят узнать, кто из них быстрее. Им предстоит пройти трассу длиной 43872 метра, и нам нужно определить, кто из них - пришёл к финишу первым. +# - Нам известны средние скорости трёх фаворитов — Пети, Васи и Толи. Кто из них финишировал первым? +# - Формат ввода +# - В первой строке записана средняя скорость Пети. +# - Во второй — Васи. +# - В третьей — Толи. +# - Формат вывода +# - Имя победителя гонки. +# - Примечание +# - Гарантируется, что победителем стал только один. + + +# + +def who_is_faster_now() -> None: + """who_is_faster_now.""" + petr_speed: float = float(input()) + vasya_speed: float = float(input()) + tolya_speed: float = float(input()) + if petr_speed > vasya_speed > tolya_speed: + print("Петя") + elif vasya_speed > petr_speed > tolya_speed: + print("Вася") + else: + print("Толя") + + +if __name__ == "__main__": + who_is_faster_now() + + +# - + +# ## 4.Список победителей +# - В этой задаче вы продолжите работать с операторами, но добавим к этому наивную сортировку данных. +# - Время подвести итоги гонки и объявить победителя! +# - Длина трассы — 43872 метра, и нам известны средние скорости трёх фаворитов: Пети, Васи и Толи. +# - Ваша задача — сравнить результаты гонщиков и вывести имя победителя. +# - Формат ввода +# - В первой строке записана средняя скорость Пети. +# - Во второй — Васи. +# - В третьей — Толи. +# - Формат вывода +# - Имена победителей в порядке занятых мест. + + +# + +def list_winners() -> None: + """list_winners.""" + petr_speed: float = float(input()) + vasya_speed: float = float(input()) + tolya_speed: float = float(input()) + if petr_speed > vasya_speed > tolya_speed: + print("1. Петя\n2. Вася\n3. Толя") + elif petr_speed > tolya_speed > vasya_speed: + print("1. Петя\n2. Толя\n3. Вася") + elif vasya_speed > petr_speed > tolya_speed: + print("1. Вася\n2. Петя\n3. Толя") + elif vasya_speed > tolya_speed > petr_speed: + print("1. Вася\n2. Толя\n3. Петя") + elif tolya_speed > petr_speed > vasya_speed: + print("1. Толя\n2. Петя\n3. Вася") + else: + print("1. Толя\n2. Вася\n3. Петя") + + +if __name__ == "__main__": + list_winners() + + +# - + +# ## 5.Яблоки +# - Как насчет небольшой головоломки с применением условного оператора? +# - У Пети было 7 яблок, а у Васи 6. +# - Затем Петя отдал 3 яблока Васе, а у Толи взял 2 яблока. +# - Вася попросил у Толи 5 яблок, но отдал Гене 2. +# - Затем Дима дал Пете N яблок, а Васе M. +# - Так у кого в итоге яблок больше — у Пети или Васи? +# - Формат ввода +# - В первой строке записано натуральное число N.Во второй — M. +# - Формат вывода +# - Имя ребёнка, у которого больше яблок. + + +# + +def apples() -> None: + """apples.""" + petr_apple: int = 7 + vasya_apple: int = 6 + n_apple: int = int(input()) + m_apple: int = int(input()) + petr_apple -= 3 + vasya_apple += 3 + petr_apple += 2 + vasya_apple += 5 + vasya_apple -= 2 + petr_apple += n_apple + vasya_apple += m_apple + if petr_apple > vasya_apple: + print("Петя") + else: + print("Вася") + + +if __name__ == "__main__": + apples() + + +# - + +# ## 6.Сила прокрастинации +# - Вася любит полениться. Особенно ему нравится, когда в году появляется такой лишний денёк, которого обычно не бывает. +# - Напишите программу, которая поможет Васе определить, удастся ли ему побездельничать в определённом году или нет. +# - Формат ввода +# - Одно число — год. +# - Формат вывода +# - Одно слово «YES» (удастся) или «NO» (не удастся). + + +# + +def power_of_procrastination() -> None: + """power_of_procrastination.""" + year: int = int(input()) + if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0): + print("YES") + else: + print("NO") + + +if __name__ == "__main__": + power_of_procrastination() + + +# - + +# ## 7.А роза упала на лапу Азора +# - Новый день - новое знание! А вы знали, что есть такое понятие как "палиндром"? +# - Палиндром - это число, слово, предложение и так далее, которое и слева-направо, и справа-налево читается одинаково. +# - А как быстро понять, является ли слово палиндромом? Написать программу для проверки этого! В этом нам снова поможет условный оператор. +# - Формат ввода +# - Одно четырёхзначное число +# - Формат вывода +# - YES если число является палиндромом, иначе — NO. + + +# + +def polindrom_numb() -> None: + """polindrom_numb.""" + polindrom: int = int(input()) + num_1: int = polindrom // 1000 + num_2: int = (polindrom // 100) % 10 + num_3: int = (polindrom // 10) % 10 + num_4: int = polindrom % 10 + if num_1 == num_4 and num_2 == num_3: + print("YES") + else: + print("NO") + + +if __name__ == "__main__": + polindrom_numb() + + +# - + +# ## 8.Зайка — 1 +# - В долгих поездках дети могут заскучать, поэтому родители развлекают их различными играми. Одна из таких игр — искать зверушек в придорожной растительности. +# - Давайте сыграем! С помощью условного оператора if-else и оператора in проверим, не спрятался ли зайка в введённом предложении +# - Формат ввода +# - Строка описывающая придорожную местность. +# - Формат вывода +# - YES — если в этой местности есть зайка, иначе — NO. + + +# + +def search_hare() -> None: + """search_hare.""" + text: str = input() + if "зайка" in text: + print("YES") + else: + print("NO") + + +if __name__ == "__main__": + search_hare() + + +# - + +# ## 9.Первому игроку приготовиться +# - Кто пойдёт первым? В настольных играх очередность часто определяется жребием, но мы будем использовать порядок букв! +# - Давайте сравним имена игроков лексикографически и с помощью условных операторов определим, кто начнёт игру. +# - Формат ввода +# - Три имени игроков, каждое из которых записано с новой строки. +# - Формат вывода +# - Имя игрока, который будет ходить первым. + + +# + +def first_player() -> None: + """first_player.""" + name_1: str = input() + name_2: str = input() + name_3: str = input() + if name_1 < name_2 and name_1 < name_3: + print(name_1) + elif name_2 < name_1 and name_2 < name_3: + print(name_2) + else: + print(name_3) + + +if __name__ == "__main__": + first_player() + + +# - + +# ## 10.Лучшая защита — шифрование +# - Коля решил зашифровать свои пароли, чтобы Аня не смогла их подсмотреть в блокноте. Для этого он берёт изначальный пароль — трёхзначное число — и превращает его в новое, следуя таким правилам: +# - Сначала находит сумму двух младших цифр (десятков и единиц). +# - Затем находит сумму двух старших цифр (сотен и десятков). +# - Эти суммы записываются в порядке не возрастания, образуя зашифрованное число. +# - Помогите реализовать алгоритм шифрования, используя базовое применение условного оператора if-else. +# - Формат ввода +# - Одно трёхзначное число +# - Формат вывода +# - Результат шифрования + + +# + +def encryption_protection() -> None: + """encryption_protection.""" + code: int = int(input()) + junior_numb: int = (code // 10) % 10 + (code % 10) + senior_numb: int = (code // 10) % 10 + (code // 100) + if junior_numb > senior_numb: + print(str(junior_numb) + str(senior_numb)) + else: + print(str(senior_numb) + str(junior_numb)) + + +if __name__ == "__main__": + encryption_protection() + + +# - + +# ## 11.Красота спасёт мир +# - Согласно одному древнему поверью, трёхзначное число считается красивым, если сумма его минимальной и максимальной цифр равна оставшейся цифре умноженной на 2. +# - Напишите программу, которая проверяет, является ли число красивым. +# - Формат ввода +# - Одно трёхзначное число +# - Формат вывода +# - YES — если число красивое, иначе — NO + + +# + +def beauty_will_save_to_world() -> None: + """beauty_will_save_to_world.""" + local_numb: int = int(input()) + local_numb_1: int = local_numb // 100 + local_numb_2: int = (local_numb // 10) % 10 + local_numb_3: int = local_numb % 10 + min_numb: int = min(local_numb_1, local_numb_2, local_numb_3) + max_numb: int = max(local_numb_1, local_numb_2, local_numb_3) + mid_numb: int = (local_numb_1 + local_numb_2 + local_numb_3) - min_numb - max_numb + if min_numb + max_numb == 2 * mid_numb: + print("YES") + else: + print("NO") + + +if __name__ == "__main__": + beauty_will_save_to_world() + + +# - + +# ## 12.Музыкальный инструмент +# - Вася обожает треугольники и решил попробовать сделать один самостоятельно. +# - У него есть несколько алюминиевых трубочек разной длины, и он хочет узнать, можно ли из них собрать треугольник. +# - Помогите Васе определить, можно ли из трёх данных отрезков создать треугольник. +# - Формат ввода +# - Три числа — длины трубочек, каждое с новой строки. +# - Формат вывода +# - YES — если Васе удастся создать музыкальный треугольник, иначе — NO + + +# + +def musical_instrument() -> None: + """musical_instrument.""" + side_1: int = int(input()) + side_2: int = int(input()) + side_3: int = int(input()) + sum_1 = side_1 + side_2 + sum_2 = side_1 + side_3 + sum_3 = side_2 + side_3 + if sum_1 > side_3 and sum_2 > side_2 and sum_3 > side_1: + print("YES") + else: + print("NO") + + +if __name__ == "__main__": + musical_instrument() + + +# - + +# ## 13.Властелин Чисел: Братство общей цифры +# - Во времена магии и драконов ходили легенды о числах, обладающих великой силой, способной изменить мир. +# - Три числа были даны эльфам, семь — гномам, а девять достались человеческому роду. +# - Но все они были обмануты... Потому что существовало ещё одно число. В стране Нумия, на бумаге из тёмного папируса, властелин Зерон тайно записал Единую Цифру, подчиняющую себе все великие числа. +# - Давайте выясним, что это за цифра! +# - Формат ввода +# - В первой строке записано двузначное число одного из эльфов. +# - Во второй строке — Гномов. +# - В третьей — Людей. +# - Формат вывода +# - Одна цифра — общая у всех трёх чисел в одинаковой позиции + + +# + +def brotherhood_of_numbers() -> None: + """brotherhood_of_numbers.""" + num_1: int = int(input()) + num_2: int = int(input()) + num_3: int = int(input()) + + if num_1 % 10 == num_2 % 10 == num_3 % 10: + print(num_1 % 10) + elif num_1 // 10 == num_2 // 10 == num_3 // 10: + print(num_1 // 10) + + +if __name__ == "__main__": + brotherhood_of_numbers() + + +# - + +# ## 14.Властелин Чисел: Две Башни +# - Во времена, когда люди верили в магическую силу чисел, волшебник Пифуман предал все народы и встал на сторону Зерона. +# - Теперь, чтобы проникнуть в башни обоих злодеев одновременно, нужно разделить силу числа, которое защищало нас в дороге. +# - Для этого возьмём трёхзначное число и составим из него минимальное и максимальное возможные двухзначные числа. Каждая цифра может использоваться не более того количества раз, сколько раз она встречается во входном числе. +# - Формат ввода +# - Одно трёхзначное число. +# - Формат вывода +# - Два защитных числа для каждого отряда, записанные через пробел. + + +# + +def two_towers() -> None: + """two_towers.""" + num = int(input().strip()) + digits = [num // 100, (num // 10) % 10, num % 10] + digits_sorted = sorted(digits) + min_digits = digits_sorted.copy() + max_digits = digits_sorted.copy() + + min_first = None + for dig in min_digits: + if dig != 0: + min_first = dig + break + + if min_first is None: + min_first = 0 + + min_temp = min_digits.copy() + min_temp.remove(min_first) + + min_second = min_temp[0] + min_number = min_first * 10 + min_second + + max_first = max_digits[-1] + + max_temp = max_digits.copy() + max_temp.remove(max_first) + + max_second = max_temp[-1] + max_number = max_first * 10 + max_second + + print(f"{min_number} {max_number}") + + +if __name__ == "__main__": + two_towers() + + +# - + +# ## 15.Властелин Чисел: Возвращение Цезаря +# - До победы над злом остался последний шаг — разрушить логово Зерона. +# - Для этого нам нужно создать трёхзначное магическое число, которое будет сильнее двух защитных чисел Зерона. +# - Как его составить? +# - Первая цифра — максимальная из всех защитных чисел. +# - Последняя цифра — минимальная. +# - Средняя цифра — сумма оставшихся цифр без учёта переноса разряда. +# - Соберите это магическое число и помогите одолеть зло! +# - Формат ввода +# - В двух строках записаны защитные числа Зерона. +# - Формат вывода +# - Одно трёхзначное число, которое приведёт к победе. + + +# + +def caesar_return() -> None: + """Caesar_return.""" + num_1, num_2 = int(input()), int(input()) + digits: list[int] = [num_1 // 10, num_1 % 10, num_2 // 10, num_2 % 10] + digits.sort() + max_num, min_num = digits[-1], digits[0] + mid_num: int = (digits[1] + digits[2]) % 10 + print(f"{max_num}{mid_num}{min_num}") + + +if __name__ == "__main__": + caesar_return() + + +# - + +# ## 16.Легенды велогонок возвращаются: кто быстрее? +# - В новом сезоне за первенство в велогонках снова сражаются сильнейшие. Протяжённость финальной трассы — 43872м, и все хотят узнать, кто первым пересечёт финишную черту. +# - Нам известны средние скорости трёх претендентов — Пети, Васи и Толи. Кто станет победителем? +# - Формат ввода +# - В первой строке записана средняя скорость Пети. +# - Во второй — Васи. +# - В третьей — Толи. +# - Формат вывода +# - Красивый пьедестал (ширина ступеней 8 символов). + + +# + +def cycling_legends() -> None: + """cycling_legends.""" + petr: int = int(input()) + vasya: int = int(input()) + tolya: int = int(input()) + + number_1: str + number_2: str + number_3: str + + if petr > vasya > tolya: + number_1 = "Петя" + number_2 = "Вася" + number_3 = "Толя" + elif petr > tolya > vasya: + number_1 = "Петя" + number_2 = "Толя" + number_3 = "Вася" + elif vasya > petr > tolya: + number_1 = "Вася" + number_2 = "Петя" + number_3 = "Толя" + elif vasya > tolya > petr: + number_1 = "Вася" + number_2 = "Толя" + number_3 = "Петя" + elif tolya > petr > vasya: + number_1 = "Толя" + number_2 = "Петя" + number_3 = "Вася" + else: + number_1 = "Толя" + number_2 = "Вася" + number_3 = "Петя" + + print(f"{' ' * 8}{number_1:^8}{' ' * 8}") + print(f"{number_2:^8}{' ' * 8}") + print(f"{' ' * 16}{number_3:^8}") + print(f"{'II':^8}{'I':^8}{'III':^8}") + + +if __name__ == "__main__": + cycling_legends() + + +# - + +# ## 17.Корень зла +# - Знаете ли вы, что Python изначально создавался для решения математических задач? Давайте воспользуемся его возможностями и найдём корни уравнения, используя составные условные операции. +# - Формат ввода +# - Вводится 3 вещественных числа a, b, c — коэффициенты уравнения вида: ax**2 + bx + c = 0 +# - Формат вывода +# - Если у уравнения нет решений — следует вывести «No solution». +# - Если корней конечное число — их нужно вывести через пробел в порядке возрастания с точностью до сотых. +# - Если корней неограниченное число — следует вывести «Infinite solutions». +# - Примечание +# - Обратите внимание: ограничения на значения коэффициентов отсутствуют. +# +# + + +# + +def root_of_evil() -> None: + """root_of_evil.""" + + +a_num: float = float(input()) +b_num: float = float(input()) +c_num: float = float(input()) + +if a_num == 0: + if b_num == 0: + if c_num == 0: + print("Infinite solutions") + else: + print("No solution") + else: + root: float = -c_num / b_num + print(f"{root:.2f}") +else: + discriminant: float = b_num**2 - 4 * a_num * c_num + if discriminant > 0: + root_1: float = (-b_num + discriminant**0.5) / (2 * a_num) + root_2: float = (-b_num - discriminant**0.5) / (2 * a_num) + if root_1 > root_2: + root_1, root_2 = root_2, root_1 + print(f"{root_1:.2f} {root_2:.2f}") + elif discriminant == 0: + root = -b_num / (2 * a_num) + print(f"{root:.2f}") + else: + print("No solution") + + +if __name__ == "__main__": + root_of_evil() + + +# - + +# ## 18.Территория зла +# - В давние времена верили, что если местность имеет форму треугольника, то в ней может скрываться страшное зло. +# - При этом риск столкнуться с ним зависел от формы треугольника: +# - Остроугольный — вероятность встречи со злом крайне мала. +# - Тупоугольный — опасность велика. +# - Прямоугольный — вероятность 100%! +# - Напишите программу, которая определяет вероятность встретить зло по длинам сторон треугольника. Воспользуйтесь для этого составными условными операциями. +# - Формат ввода +# - Три числа — длины сторон треугольной местности. +# - Формат вывода +# - Вероятность встретить зло согласно поверью: +# - крайне мала; +# - велика; +# - 100%. + + +# + +def territory_of_evil() -> None: + """territory_of_evil.""" + a_numb: float = float(input()) + b_numb: float = float(input()) + c_numb: float = float(input()) + max_side: float = max(a_numb, b_numb, c_numb) + sum_sq: float = a_numb**2 + b_numb**2 + c_numb**2 - max_side**2 + if sum_sq == max_side**2: + print("100%") + elif sum_sq < max_side**2: + print("велика") + else: + print("крайне мала") + + +if __name__ == "__main__": + territory_of_evil() + + +# - + +# ## 19.Автоматизация безопасности +# - Группа исследователей готовится к высадке на остров идеальной формы, но спутниковая разведка обнаружила на нём зону зыбучих песков. +# - Чтобы обеспечить безопасность экспедиции, разработана система оповещения, которая предупреждает об опасности в зависимости от координат исследователя. +# - Для снижения расходов было решено создать программное обеспечение, которое автоматически определит, безопасна ли точка местонахождения исследователя. +# +# ![image.png](attachment:image.png) +# +# - Напишите программу, которая по заданным координатам проверит, находится ли исследователь в зоне опасности, учитывая несколько условий одновременно. +# - Формат ввода +# - Два рациональных числа — координаты исследователя. +# - Формат вывода +# - Одно из сообщений: +# - Опасность! Покиньте зону как можно скорее! +# - Зона безопасна. Продолжайте работу. +# - Вы вышли в море и рискуете быть съеденным акулой! + + +# + +def security_automation() -> None: + """security_automation.""" + x_numb = float(input()) + y_numb = float(input()) + + distance_from_origin: float = (x_numb**2 + y_numb**2) ** 0.5 + + if distance_from_origin > 10: + print("Вы вышли в море и рискуете быть съеденным акулой!") + elif x_numb > 0 and y_numb > 0 and distance_from_origin <= 5: + print("Опасность! Покиньте зону как можно скорее!") + elif (-4) <= x_numb < 0 <= y_numb <= 5: + print("Опасность! Покиньте зону как можно скорее!") + elif ( + (-7) <= x_numb < (-4) and 0 <= y_numb <= 5 and (5 * x_numb - 3 * y_numb) > (-35) + ): + print("Опасность! Покиньте зону как можно скорее!") + elif (0.25 * x_numb**2 + 0.5 * x_numb - 9) <= y_numb <= 0: + print("Опасность! Покиньте зону как можно скорее!") + else: + print("Зона безопасна. Продолжайте работу.") + + +if __name__ == "__main__": + security_automation() + + +# - + +# ## 20.Зайка — 2 +# - По пути домой родители снова решили сыграть с детьми в поиск зверушек. Но на этот раз задача сложнее — нужно не просто найти зайку, а выбрать правильную строку по определённым условиям. +# - Вам предстоит проверить три строки, найти среди них ту, где встречается слово "зайка", и вывести её вместе с её длиной. Если таких строк несколько, выберите наименьшую в алфавитном порядке. +# - Для этого используйте составные условные операции, чтобы одновременно учесть несколько условий. +# - Формат ввода +# - Три строки описывающих придорожную местность. +# - Формат вывода +# - Строка в которой есть зайка, а затем её длина. +# - Если таких строк несколько, выбрать ту, что меньше всех лексикографически. + + +# + +def search_hare_2() -> None: + """search_hare_2.""" + string_1: str = input() + string_2: str = input() + string_3: str = input() + result: str | None = None + + if "зайка" in string_1: + if result is None or string_1 < result: + result = string_1 + if "зайка" in string_2: + if result is None or string_2 < result: + result = string_2 + if "зайка" in string_3: + if result is None or string_3 < result: + result = string_3 + + print(f"{result} {len(result) if result is not None else 0}") + + +if __name__ == "__main__": + search_hare_2() diff --git a/python/yandex/cycles_2_3.ipynb b/python/yandex/cycles_2_3.ipynb new file mode 100644 index 00000000..49aecdf5 --- /dev/null +++ b/python/yandex/cycles_2_3.ipynb @@ -0,0 +1,1038 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "id": "e2dcf788", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'\\n2.3. Циклы\\n'" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\"\"\"2.3. Циклы.\n", + "\n", + "В этом параграфе мы научимся выполнять одни и те же действия\n", + "многократно с помощью циклов while и for. Вы узнаете, как\n", + "устроены циклы в Python, когда использовать каждый из них,\n", + "и как сделать код компактнее с помощью новых возможностей языка.\n", + "\"\"\"" + ] + }, + { + "cell_type": "markdown", + "id": "eac2d44e", + "metadata": {}, + "source": [ + "## 1.Раз, два, три! Ёлочка, гори!\n", + "- В этом параграфе мы изучили циклы, а значит, пришло время закрепить их на практике. Начнем с цикла while.\n", + "- На новогоднем утреннике в детском саду дети должны прокричать «Три!», чтобы зажглась ёлочка. Но с порядком чисел у них пока сложности – они выкрикивают всё подряд.\n", + "- Ваша задача — написать программу, которая ждёт правильный крик и только после этого зажигает ёлочку.\n", + "- Формат ввода\n", + "- Вводятся крики детей.\n", + "- Формат вывода\n", + "- Требуется выводить \"Режим ожидания...\", пока дети не прокричат \"Три!\".\n", + "- В конце вывести \"Ёлочка, гори!\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e36d7fc6", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Режим ожидания...\n", + "Режим ожидания...\n", + "Режим ожидания...\n", + "Ёлочка, гори!\n" + ] + } + ], + "source": [ + "def herringbone() -> None:\n", + " \"\"\"herringbone.\"\"\"\n", + " while True:\n", + " noise_children: str = input()\n", + " if noise_children == \"Три!\":\n", + " break\n", + " print(\"Режим ожидания...\")\n", + " print(\"Ёлочка, гори!\")\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " herringbone()" + ] + }, + { + "cell_type": "markdown", + "id": "a9cd4994", + "metadata": {}, + "source": [ + "## 2.Зайка — 3\n", + "- Долгая поездка в поезде — испытание для родителей. Чтобы дети не скучали, они играют в поиск зверушек в придорожной растительности. Давайте присоединимся к этой игре и посчитаем, в скольких строках встречается зайка!\n", + "- А поможет вам в этом цикл while.\n", + "- Формат ввода\n", + "- Вводятся строки описывающие придорожную местность.\n", + "- В конце поездки вводится \"Приехали!\"\n", + "- Формат вывода\n", + "- Количество строк в которых есть зайка." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b80e0ce2", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1\n" + ] + } + ], + "source": [ + "def rabbit_three() -> None:\n", + " \"\"\"rabbit_four.\"\"\"\n", + " count_rabbit: int = 0\n", + " string_count: str\n", + " while (string_count := input()) != \"Приехали!\":\n", + " if \"зайка\" in string_count:\n", + " count_rabbit += 1\n", + " print(count_rabbit)\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " rabbit_three()" + ] + }, + { + "cell_type": "markdown", + "id": "bae2f550", + "metadata": {}, + "source": [ + "## 3.Считалочка\n", + "- Давайте поможем ребятам в детском саду выучить числа! Они называют два числа — начало и конец последовательности, а мы выводим все числа между ними.\n", + "- Используйте для этого цикл for.\n", + "- Формат ввода\n", + "- Два числа в порядке возрастания, каждое с новой строки.\n", + "- Формат вывода\n", + "- Все числа от начала до конца (включительно), записанные через пробел." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "04a62bb6", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1 2 3 4 5 6 7 8 9 10 " + ] + } + ], + "source": [ + "def counting_rhyme() -> None:\n", + " \"\"\"counting_rhyme.\"\"\"\n", + " start_num: int = int(input())\n", + " finish_num: int = int(input())\n", + " for number in range(start_num, finish_num + 1):\n", + " print(number, end=\" \")\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " counting_rhyme()" + ] + }, + { + "cell_type": "markdown", + "id": "50c971d1", + "metadata": {}, + "source": [ + "## 4.Считалочка 2.0\n", + "- Продолжаем помогать ребятам в детском саду учить числа и тренируем работу с циклами!\n", + "- Теперь числа могут называться в любом порядке — от меньшего к большему или от большего к меньшему.\n", + "- Ваша задача — вывести все числа от начала до конца в правильном порядке.\n", + "- Формат ввода\n", + "- Два числа, каждое с новой строки.\n", + "- Формат вывода\n", + "- Все числа от начала до конца (включительно), записанные через пробел." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7a631c49", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3 2 1 0 -1 -2 -3 " + ] + } + ], + "source": [ + "def counting_rhyme_2() -> None:\n", + " \"\"\"counting_rhyme_2.\"\"\"\n", + " start: int = int(input())\n", + " finish: int = int(input())\n", + " if start <= finish:\n", + " for number_first in range(start, finish + 1):\n", + " print(number_first, end=\" \")\n", + " else:\n", + " for number_first in range(start, finish - 1, -1):\n", + " print(number_first, end=\" \")\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " counting_rhyme_2()" + ] + }, + { + "cell_type": "markdown", + "id": "1799c888", + "metadata": {}, + "source": [ + "## 5.Внимание! Акция!\n", + "- Добавим к циклу while работу с дробными числами?\n", + "- В продуктовом магазине объявили акцию:\n", + "- скидка 10% на все товары, которые стоят 500 тугриков и больше.\n", + "- Вам нужно разработать программу для кассового автомата, которая считает итоговую сумму покупки с учётом скидки.\n", + "- Формат ввода\n", + "- Вводится некоторое количество рациональных чисел - стоимость товаров.\n", + "- Список завершается значением 0.\n", + "- Формат вывода\n", + "- Требуется вывести сумму всех товаров с учетом объявленной акции." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "03a8c153", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "883.0\n" + ] + } + ], + "source": [ + "def promotion() -> None:\n", + " \"\"\"promotion.\"\"\"\n", + " result: float = 0.0\n", + " price: float\n", + " while price := float(input()):\n", + " if price >= 500:\n", + " price *= 0.9\n", + " result += price\n", + " print(result)\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " promotion()" + ] + }, + { + "cell_type": "markdown", + "id": "fbdca9c8", + "metadata": {}, + "source": [ + "## 6.НОД\n", + "- В одном из местных НИИ очень часто требуется находить наибольший общий делитель двух чисел.\n", + "- Т.к. вы уже зарекомендовали себя, как одни из лучших \"автоматизаторов\" в округе, руководство НИИ заказало данное ПО именно у вас.\n", + "- Формат ввода\n", + "- Вводится два натуральных числа, каждое на своей строке.\n", + "- Формат вывода\n", + "- Требуется вывести одно натуральное число – НОД двух данных чисел.\n", + "- Примечание\n", + "- Самый распространенный способ поиска НОД – Алгоритм Евклида." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "83924ce2", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1\n" + ] + } + ], + "source": [ + "def greatest_common_divisor() -> None:\n", + " \"\"\"greatest_common_divisor.\"\"\"\n", + " a_number: int = int(input())\n", + " b_number: int = int(input())\n", + " while b_number:\n", + " a_number, b_number = b_number, a_number % b_number\n", + " print(a_number)\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " greatest_common_divisor()" + ] + }, + { + "cell_type": "markdown", + "id": "965b3c43", + "metadata": {}, + "source": [ + "## 7.НОК\n", + "- В одном из местных НИИ часто требуется находить наименьшее общее кратное (НОК) двух чисел.\n", + "- Так как вы уже зарекомендовали себя как лучшие \"автоматизаторы\", руководство доверило вам разработку этой программы.\n", + "- Решите эту задачу, используя цикл while.\n", + "- Формат ввода\n", + "- Вводится два натуральных числа, каждое на своей строке.\n", + "- Формат вывода\n", + "- Требуется вывести одно натуральное число – НОК двух данных чисел." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "06bb2d24", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "320000\n" + ] + } + ], + "source": [ + "def least_common_multiple() -> None:\n", + " \"\"\"least_common_multiple.\"\"\"\n", + " a_numb: int = int(input())\n", + " b_numb: int = int(input())\n", + " x_numb: int = a_numb\n", + " y_numb: int = b_numb\n", + " while y_numb:\n", + " x_numb, y_numb = y_numb, x_numb % y_numb\n", + " nod: int = x_numb\n", + " noc: int = abs(a_numb * b_numb) // nod\n", + " print(noc)\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " least_common_multiple()" + ] + }, + { + "cell_type": "markdown", + "id": "6eac9167", + "metadata": {}, + "source": [ + "## 8.Излишняя автоматизация 2.0\n", + "- Снова переходим к работе с циклом for.\n", + "- \"Повторение - мать учения!\" и \"Если это можно автоматизировать - автоматизируй!\"\n", + "- Этим принципам следуют очень многие программисты.\n", + "- А что будет если их объединить?\n", + "- Формат ввода\n", + "- В первой строке записана весьма полезная информация. Во второй натуральное число \n", + "N – количество раз, которое ее нужно повторить, чтобы она закрепилась.\n", + "- Формат вывода N раз повторенная весьма полезная информация" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "74d9ffb2", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2 + 2 = 4\n", + "2 + 2 = 4\n", + "2 + 2 = 4\n", + "2 + 2 = 4\n" + ] + } + ], + "source": [ + "def excessive_typing() -> None:\n", + " \"\"\"excessive_typing.\"\"\"\n", + " input_string: str = input()\n", + " count_string: int = int(input())\n", + " for _ in range(count_string):\n", + " print(input_string)\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " excessive_typing()" + ] + }, + { + "cell_type": "markdown", + "id": "42241b1a", + "metadata": {}, + "source": [ + "## 9.Факториал\n", + "- В одном из местных НИИ регулярно требуется находить факториал числа.\n", + "- Поскольку вы уже зарекомендовали себя, как одни из лучших \"автоматизаторов\" в округе, руководство НИИ доверило разработку этого ПО именно вам!\n", + "- Решите эту задачу, используя цикл for.\n", + "- Формат ввода\n", + "- Вводится одно неотрицательное число.\n", + "- Формат вывода\n", + "- Требуется вывести одно натуральное число – факториал заданного числа.\n", + "- Примечания\n", + "- Факториал нуля принят равным 1." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a7f05146", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "6\n" + ] + } + ], + "source": [ + "def factorial() -> None:\n", + " \"\"\"factorial.\"\"\"\n", + " number_fac = int(input())\n", + " factorial_num: int = 1\n", + " for i in range(number_fac):\n", + " factorial_num = factorial_num * (i + 1)\n", + " print(factorial_num)\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " factorial()" + ] + }, + { + "cell_type": "markdown", + "id": "86d337ec", + "metadata": {}, + "source": [ + "## 10.Маршрут построен\n", + "\n", + "- Навигация всегда была важна. Нам достался архив маршрутов движения, но их так много, что без автоматизации справиться с ними просто невозможно.\n", + "- Каждый маршрут представляет собой последовательность шагов в одном из четырёх направлений:\n", + "- СЕВЕР\n", + "- ЮГ\n", + "- ВОСТОК\n", + "- ЗАПАД\n", + "- Для формализации маршрутов была выбрана географическая система координат в которой две оси (СЕВЕР-ЮГ и ВОСТОК-ЗАПАД), а единичный отрезок по каждой из них равен одному шагу.\n", + "- Напишите программу, которая по заданному маршруту определит, в какой именно точке мы очутимся, если изначально находимся в точке(0;0).\n", + "- Формат ввода\n", + "- Вводятся инструкции маршрута в виде:\n", + "- <направление>\n", + "- <количество шагов>\n", + "- Ввод завершается строкой СТОП\n", + "- Формат вывода\n", + "- Два целых числа – координаты конечной точки маршрута." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "da19d227", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2\n", + "2\n" + ] + } + ], + "source": [ + "def route_planning() -> None:\n", + " \"\"\"route_planning.\"\"\"\n", + " x_step: int = 0\n", + " y_steep: int = 0\n", + " direction: str\n", + " steps: int\n", + "\n", + " while (direction := str(input())) != \"СТОП\":\n", + " steps = int(input())\n", + " if direction == \"СЕВЕР\":\n", + " y_steep += steps\n", + " elif direction == \"ЮГ\":\n", + " y_steep -= steps\n", + " elif direction == \"ВОСТОК\":\n", + " x_step += steps\n", + " elif direction == \"ЗАПАД\":\n", + " x_step -= steps\n", + " print(y_steep)\n", + " print(x_step)\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " route_planning()" + ] + }, + { + "cell_type": "markdown", + "id": "f0a606f7", + "metadata": {}, + "source": [ + "## 11.Цифровая сумма\n", + "- Многие люди любят манипуляции с цифрами чисел.\n", + "- Одно из самых простых действий – найти сумму цифр числа.\n", + "- Напишите программу, которая выполнит эту задачу.\n", + "- Она поможет потренироваться в построении базовых алгоритмов с циклом while.\n", + "- Формат ввода\n", + "- Вводится одно натуральное число.\n", + "- Формат вывода\n", + "- Требуется вывести одно натуральное число – сумму цифр исходного." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "41a1f9bf", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "15\n" + ] + } + ], + "source": [ + "def sum_of_digits() -> None:\n", + " \"\"\"sum_of_digits.\"\"\"\n", + " numb_count: int = int(input())\n", + " count_number: int = 0\n", + "\n", + " while numb_count > 0:\n", + " count_number += numb_count % 10\n", + " numb_count = numb_count // 10\n", + " print(count_number)\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " sum_of_digits()" + ] + }, + { + "cell_type": "markdown", + "id": "26527c55", + "metadata": {}, + "source": [ + "## 12.Сильная цифра\n", + "- Мы продолжаем наши эксперименты с числами!\n", + "- На этот раз нужно выполнить другое действие — найти максимальную цифру числа.\n", + "- Напишите программу для выполнения этого действия.\n", + "- Формат ввода\n", + "- Вводится одно натуральное число.\n", + "- Формат вывода\n", + "- Требуется вывести одно натуральное число – максимальную цифру исходного." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "38eaa2be", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "5\n" + ] + } + ], + "source": [ + "def strong_number() -> None:\n", + " \"\"\"strong_figure.\"\"\"\n", + " numb_simple: int = int(input())\n", + " count_num: int = 0\n", + " while numb_simple > 0:\n", + " count_num = max(count_num, numb_simple % 10)\n", + " numb_simple = numb_simple // 10\n", + " print(count_num)\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " strong_number()" + ] + }, + { + "cell_type": "markdown", + "id": "53300ede", + "metadata": {}, + "source": [ + "## 13.Первому игроку приготовиться 2.0\n", + "- Время передохнуть! Если чувствуете усталость, сделайте короткий отдых и возвращайтесь, когда будете готовы.\n", + "- Во многих играх порядок определяется броском кубика или монетки, а у нас — лексикографическим сравнением имён.\n", + "- Первым ходит тот, чьё имя идёт раньше в алфавитном порядке.\n", + "- Определите, кто из игроков начнёт игру, используя цикл for.\n", + "- Формат ввода\n", + "- В первой строке записано одно натуральное число N – количество игроков.\n", + "- В каждой из последующих N строк записано одно имя игрока (используются только латинские и кириллические символы).\n", + "- Формат вывода\n", + "- Имя игрока, который будет ходить первым." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "04f67c40", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Вася\n" + ] + } + ], + "source": [ + "def first_player_2() -> None:\n", + " \"\"\"first_player.\"\"\"\n", + " players: int = int(input())\n", + " if players == 1:\n", + " print(input())\n", + " first_player: str = input()\n", + " for _ in range(players - 1):\n", + " name: str = input()\n", + " first_player = min(first_player, name)\n", + " print(first_player)\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " first_player_2()" + ] + }, + { + "cell_type": "markdown", + "id": "ba7a38f7", + "metadata": {}, + "source": [ + "## 14.Простая задача\n", + "- Одним из самых интересных видов чисел в математике являются простые числа.\n", + "- Они остаются загадкой для учёных по всему миру и продолжают изучаться.\n", + "- Кроме того, простые числа находят применение в вычислительной технике — они лежат в основе алгоритмов шифрования данных.\n", + "- Напишите программу, которая определяет, является ли число простым. Эта задача поможет вам потренироваться в построении базовых алгоритмов с циклом for.\n", + "- Формат ввода\n", + "- Вводится одно натуральное число.\n", + "- Формат вывода\n", + "- Требуется вывести сообщение \"YES\" если число простое, иначе – \"NO\".\n", + "- Примечание\n", + "- Простым называется число, которое имеет ровно два делителя." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "87f358b0", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "YES\n" + ] + } + ], + "source": [ + "def simple_task() -> None:\n", + " \"\"\"simple_task.\"\"\"\n", + " number_task: int = int(input())\n", + " if number_task < 2:\n", + " print(\"NO\")\n", + " else:\n", + " is_prime: bool = True\n", + " for divisor in range(2, int(number_task**0.5) + 1):\n", + " if number_task % divisor == 0:\n", + " is_prime = False\n", + " break\n", + " print(\"YES\" if is_prime else \"NO\")\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " simple_task()" + ] + }, + { + "cell_type": "markdown", + "id": "3ee78815", + "metadata": {}, + "source": [ + "## 15.Зайка - 4\n", + "- Где зайки, там и циклы. На этот раз тренируемся использовать for.\n", + "- Долгая поездка в поезде — испытание для родителей. Чтобы дети не скучали, они играют в поиск зверушек в придорожной растительности.\n", + "- Давайте присоединимся к этой игре и посчитаем, в скольких строках встречается зайка!\n", + "- Формат ввода\n", + "- В первой строке записано натуральное число N – количество выделенных придорожных местностей. В каждой из N последующих строка записано описание придорожной местности.\n", + "- Формат вывода\n", + "- Количество строк в которых есть зайка." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0fe8aab9", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1\n" + ] + } + ], + "source": [ + "def rabbit_fore() -> None:\n", + " \"\"\"rabbit_fore.\"\"\"\n", + " n_rabbit: int = int(input())\n", + " count: int = 0\n", + "\n", + " for _ in range(n_rabbit):\n", + " line = input()\n", + " if \"зайка\" in line:\n", + " count += 1\n", + " print(count)\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " rabbit_fore()" + ] + }, + { + "cell_type": "markdown", + "id": "c8c49ca3", + "metadata": {}, + "source": [ + "## 16.А роза упала на лапу Азора 2.0\n", + "- Следующая задача достаточно сложная. Поэтому чуть-чуть отдыха не повредит. Выпейте чашку чая, отдохните, а затем продолжайте!\n", + "- В прошлом параграфе мы уже решали задачу о нахождении палиндрома. Давайте вспомним её суть:\n", + "- Палиндром — это число, слово или фраза, которые читаются одинаково слева направо и справа налево.\n", + "- Напишите программу, которая проверяет, является ли заданное число палиндромом. В этот раз будем использовать цикл while.\n", + "- Формат ввода\n", + "- Одно натуральное число\n", + "- Формат вывода\n", + "- YES если число является палиндромом, иначе NO." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0c8841e4", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "NO\n" + ] + } + ], + "source": [ + "def palindrome_word() -> None:\n", + " \"\"\"palindrome_word.\"\"\"\n", + " numb: str = input()\n", + " length: int = len(numb)\n", + " left: int = 0\n", + " right: int = length - 1\n", + " is_palindrome: bool = True\n", + " while left < right:\n", + " if numb[left] != numb[right]:\n", + " is_palindrome = False\n", + " break\n", + " left += 1\n", + " right -= 1\n", + " print(\"YES\" if is_palindrome else \"NO\")\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " palindrome_word()" + ] + }, + { + "cell_type": "markdown", + "id": "cda9773c", + "metadata": {}, + "source": [ + "## 17.Чётная чистота\n", + "- Одно из интересных действий, которое можно совершить – очистить число от определённых цифр.\n", + "- Напишите программу для очистки числа от всех чётных цифр, используя цикл while.\n", + "- Формат ввода\n", + "- Одно натуральное число\n", + "- Формат вывода\n", + "- Одно натуральное число - результат очистки." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "26c8ab45", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "13\n" + ] + } + ], + "source": [ + "def clearing_numbers() -> None:\n", + " \"\"\"clearing_numbers.\"\"\"\n", + " count: int = int(input())\n", + " numbers: str = \"\"\n", + " while count > 0:\n", + " numb: int = count % 10\n", + " if numb % 2 != 0:\n", + " numbers += str(numb)\n", + " else:\n", + " pass\n", + " count = count // 10\n", + " revers_numb: str = numbers[::-1]\n", + " print(revers_numb)\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " clearing_numbers()" + ] + }, + { + "cell_type": "markdown", + "id": "87a45226", + "metadata": {}, + "source": [ + "## 18.Простая задача 2.0\n", + "- Математика, \"простые числа\" и цикл while.\n", + "- \"Простые числа\" не поддаются формализации и до сих пор изучаются учеными по всему миру.\n", + "- Они применяются в вычислительной техники, как основа для алгоритмов шифрования данных.\n", + "- Напишите программу для разложения числа на простые множители.\n", + "- Формат ввода\n", + "- Вводится одно натуральное число.\n", + "- Формат вывода\n", + "- Требуется составить математическое выражение – произведение простых неубывающих чисел, которое в результате дает исходное." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a6673969", + "metadata": {}, + "outputs": [], + "source": [ + "def simple_task_2() -> None:\n", + " \"\"\"simple_task_2.\"\"\"\n", + " numb: int = int(input())\n", + " if numb == 1:\n", + " print(\"1\")\n", + " else:\n", + " numbers: str = \"\"\n", + " count: int = 2\n", + " while numb > 1:\n", + " while numb % count == 0:\n", + " if numbers:\n", + " numbers += \" * \" + str(count)\n", + " else:\n", + " numbers = str(count)\n", + " numb = numb // count\n", + " count += 1\n", + " print(numbers)\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " simple_task_2()" + ] + }, + { + "cell_type": "markdown", + "id": "7ac8992e", + "metadata": {}, + "source": [ + "## 19.Игра в «Угадайку»\n", + "- Многие люди любят играть в различные \"Угадайки\".\n", + "- Давайте сымитируем такую игру между двумя людьми.\n", + "- Ваша задача — написать программу, которая угадывает загаданное целое число от 1 до 1000 с использованием цикла while.\n", + "- Пользователь (или тестирующая система) загадывает число и не сообщает его программе.\n", + "- Угадать число нужно не более чем за 10 попыток.\n", + "- На каждую попытку пользователь отвечает одной из фраз:\n", + "- Больше\n", + "- Меньше\n", + "- Угадал!" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9a06df18", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "500\n", + "250\n", + "375\n", + "312\n", + "281\n", + "296\n", + "304\n", + "300\n", + "Число отгадано\n" + ] + } + ], + "source": [ + "def guessing_game() -> None:\n", + " \"\"\"guessing_game.\"\"\"\n", + " a_num: int = 1\n", + " b_num: int = 1001\n", + " z_num: int = 500\n", + " print(z_num)\n", + " answer: str\n", + " while (answer := input()) != \"Угадал!\":\n", + " if answer == \"Больше\":\n", + " a_num = z_num\n", + " z_num = (a_num + b_num) // 2\n", + " print(z_num)\n", + " if answer == \"Меньше\":\n", + " b_num = z_num\n", + " z_num = (a_num + b_num) // 2\n", + " print(z_num)\n", + " print(\"Число отгадано\")\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " guessing_game()" + ] + }, + { + "cell_type": "markdown", + "id": "35928724", + "metadata": {}, + "source": [ + "## 20.Хайпанём немножечко!\n", + "- Блокчейн (blockchain) переводится как «цепочка блоков». Это способ хранения данных, защищённый от подделки, используемый, в частности, криптовалютой биткоин.\n", + "- Блокчейн действительно представляет собой последовательность блоков. Каждый блок представляет собой некоторую полезную информацию (в частности, в случае биткоина это список транзакций за определённый период времени — кто кому когда сколько денег передал), снабжённую случайным числом и некоторыми служебными данными, в том числе хэшем — числом, которое по определённой формуле зависит от остальной части блока и хэша предыдущего блока.\n", + "- Хэш должен быть меньше определённого числа. При этом формула, по которой вычисляется хэш, устроена так, что невозможно получить достаточно маленький хэш иначе, чем перебирая различные значения случайного числа. Поэтому если злоумышленник решит подделать блокчейн (и, допустим, вставить в его середину блок с записью о том, что все люди передают ему все свои деньги), то ему придётся подобрать новое случайное число в новое поддельном блоке и всех последующих (ведь хэш каждого следующего блока зависит от хэша предыдущего), что потребует невозможно больших вычислительных мощностей.\n", + "- Поэтому блокчейн в целом защищён от подобных атак.\n", + "- Напишите программу, которая проводит проверку правильности хэшей в модельном блокчейне с простой хэш-функцией.\n", + "- Блок bn с номером n включает полезную информацию mn, представленную натуральным числом, r n — случайное число от 0 до 255 и hn — хеш (целое число от 0 до 255). У каждого блока хэш вычисляется по формуле hn=37×(mn+rn+hn−1)(по модулю 256), при вычислении хэша начального блока h0 вместо хэша предыдущего блока берётся ноль.\n", + "- При этом каждый блок представлен одним числом bn=hn+rn×256+mn×256**2. При этом требуется, чтобы хэш hnбыл меньше 100.\n", + "- Формат ввода\n", + "- На первой строке вводится натуральное число N — количество блоков. Далее следуют N чисел bn, каждое на отдельной строке.\n", + "- Формат вывода\n", + "- Следует вывести номер первого блока, у которого неправильный хэш (не меньше 100 или не совпадает с вычисленным по указанной в условии формуле), или -1, если все хэши в блокчейне правильные. Нумерация блоков идёт с нуля, т. е. они имеют номера от 0 до N-1." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7caffe78", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "-1\n" + ] + } + ], + "source": [ + "def hype() -> None:\n", + " \"\"\"hype.\"\"\"\n", + " quantity: int = int(input())\n", + " previous_hash: int = 0\n", + " err: int = 0\n", + " is_err: bool = False\n", + "\n", + " for i in range(quantity):\n", + " block: int = int(input())\n", + " hash_value: int = block % 256\n", + " r_numb: int = (block // 256) % 256\n", + " m_numb: int = block // 256**2\n", + " calculated_hash: int = (37 * (m_numb + r_numb + previous_hash)) % 256\n", + " if calculated_hash != hash_value or calculated_hash >= 100:\n", + " if is_err is False:\n", + " err = i\n", + " is_err = True\n", + " previous_hash = hash_value\n", + " if is_err is False:\n", + " print(-1)\n", + " else:\n", + " print(err)\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " hype()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "42edaf57", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.12" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/python/yandex/cycles_2_3.py b/python/yandex/cycles_2_3.py new file mode 100644 index 00000000..23df7a3f --- /dev/null +++ b/python/yandex/cycles_2_3.py @@ -0,0 +1,635 @@ +"""2.3. Циклы. + +В этом параграфе мы научимся выполнять одни и те же действия +многократно с помощью циклов while и for. Вы узнаете, как +устроены циклы в Python, когда использовать каждый из них, +и как сделать код компактнее с помощью новых возможностей языка. +""" + +# ## 1.Раз, два, три! Ёлочка, гори! +# - В этом параграфе мы изучили циклы, а значит, пришло время закрепить их на практике. Начнем с цикла while. +# - На новогоднем утреннике в детском саду дети должны прокричать «Три!», чтобы зажглась ёлочка. Но с порядком чисел у них пока сложности – они выкрикивают всё подряд. +# - Ваша задача — написать программу, которая ждёт правильный крик и только после этого зажигает ёлочку. +# - Формат ввода +# - Вводятся крики детей. +# - Формат вывода +# - Требуется выводить "Режим ожидания...", пока дети не прокричат "Три!". +# - В конце вывести "Ёлочка, гори!" + + +# + +def herringbone() -> None: + """herringbone.""" + while True: + noise_children: str = input() + if noise_children == "Три!": + break + print("Режим ожидания...") + print("Ёлочка, гори!") + + +if __name__ == "__main__": + herringbone() + + +# - + +# ## 2.Зайка — 3 +# - Долгая поездка в поезде — испытание для родителей. Чтобы дети не скучали, они играют в поиск зверушек в придорожной растительности. Давайте присоединимся к этой игре и посчитаем, в скольких строках встречается зайка! +# - А поможет вам в этом цикл while. +# - Формат ввода +# - Вводятся строки описывающие придорожную местность. +# - В конце поездки вводится "Приехали!" +# - Формат вывода +# - Количество строк в которых есть зайка. + + +# + +def rabbit_three() -> None: + """rabbit_four.""" + count_rabbit: int = 0 + string_count: str + while (string_count := input()) != "Приехали!": + if "зайка" in string_count: + count_rabbit += 1 + print(count_rabbit) + + +if __name__ == "__main__": + rabbit_three() + + +# - + +# ## 3.Считалочка +# - Давайте поможем ребятам в детском саду выучить числа! Они называют два числа — начало и конец последовательности, а мы выводим все числа между ними. +# - Используйте для этого цикл for. +# - Формат ввода +# - Два числа в порядке возрастания, каждое с новой строки. +# - Формат вывода +# - Все числа от начала до конца (включительно), записанные через пробел. + + +# + +def counting_rhyme() -> None: + """counting_rhyme.""" + start_num: int = int(input()) + finish_num: int = int(input()) + for number in range(start_num, finish_num + 1): + print(number, end=" ") + + +if __name__ == "__main__": + counting_rhyme() + + +# - + +# ## 4.Считалочка 2.0 +# - Продолжаем помогать ребятам в детском саду учить числа и тренируем работу с циклами! +# - Теперь числа могут называться в любом порядке — от меньшего к большему или от большего к меньшему. +# - Ваша задача — вывести все числа от начала до конца в правильном порядке. +# - Формат ввода +# - Два числа, каждое с новой строки. +# - Формат вывода +# - Все числа от начала до конца (включительно), записанные через пробел. + + +# + +def counting_rhyme_2() -> None: + """counting_rhyme_2.""" + start: int = int(input()) + finish: int = int(input()) + if start <= finish: + for number_first in range(start, finish + 1): + print(number_first, end=" ") + else: + for number_first in range(start, finish - 1, -1): + print(number_first, end=" ") + + +if __name__ == "__main__": + counting_rhyme_2() + + +# - + +# ## 5.Внимание! Акция! +# - Добавим к циклу while работу с дробными числами? +# - В продуктовом магазине объявили акцию: +# - скидка 10% на все товары, которые стоят 500 тугриков и больше. +# - Вам нужно разработать программу для кассового автомата, которая считает итоговую сумму покупки с учётом скидки. +# - Формат ввода +# - Вводится некоторое количество рациональных чисел - стоимость товаров. +# - Список завершается значением 0. +# - Формат вывода +# - Требуется вывести сумму всех товаров с учетом объявленной акции. + + +# + +def promotion() -> None: + """promotion.""" + result: float = 0.0 + price: float + while price := float(input()): + if price >= 500: + price *= 0.9 + result += price + print(result) + + +if __name__ == "__main__": + promotion() + + +# - + +# ## 6.НОД +# - В одном из местных НИИ очень часто требуется находить наибольший общий делитель двух чисел. +# - Т.к. вы уже зарекомендовали себя, как одни из лучших "автоматизаторов" в округе, руководство НИИ заказало данное ПО именно у вас. +# - Формат ввода +# - Вводится два натуральных числа, каждое на своей строке. +# - Формат вывода +# - Требуется вывести одно натуральное число – НОД двух данных чисел. +# - Примечание +# - Самый распространенный способ поиска НОД – Алгоритм Евклида. + + +# + +def greatest_common_divisor() -> None: + """greatest_common_divisor.""" + a_number: int = int(input()) + b_number: int = int(input()) + while b_number: + a_number, b_number = b_number, a_number % b_number + print(a_number) + + +if __name__ == "__main__": + greatest_common_divisor() + + +# - + +# ## 7.НОК +# - В одном из местных НИИ часто требуется находить наименьшее общее кратное (НОК) двух чисел. +# - Так как вы уже зарекомендовали себя как лучшие "автоматизаторы", руководство доверило вам разработку этой программы. +# - Решите эту задачу, используя цикл while. +# - Формат ввода +# - Вводится два натуральных числа, каждое на своей строке. +# - Формат вывода +# - Требуется вывести одно натуральное число – НОК двух данных чисел. + + +# + +def least_common_multiple() -> None: + """least_common_multiple.""" + a_numb: int = int(input()) + b_numb: int = int(input()) + x_numb: int = a_numb + y_numb: int = b_numb + while y_numb: + x_numb, y_numb = y_numb, x_numb % y_numb + nod: int = x_numb + noc: int = abs(a_numb * b_numb) // nod + print(noc) + + +if __name__ == "__main__": + least_common_multiple() + + +# - + +# ## 8.Излишняя автоматизация 2.0 +# - Снова переходим к работе с циклом for. +# - "Повторение - мать учения!" и "Если это можно автоматизировать - автоматизируй!" +# - Этим принципам следуют очень многие программисты. +# - А что будет если их объединить? +# - Формат ввода +# - В первой строке записана весьма полезная информация. Во второй натуральное число +# N – количество раз, которое ее нужно повторить, чтобы она закрепилась. +# - Формат вывода N раз повторенная весьма полезная информация + + +# + +def excessive_typing() -> None: + """excessive_typing.""" + input_string: str = input() + count_string: int = int(input()) + for _ in range(count_string): + print(input_string) + + +if __name__ == "__main__": + excessive_typing() + + +# - + +# ## 9.Факториал +# - В одном из местных НИИ регулярно требуется находить факториал числа. +# - Поскольку вы уже зарекомендовали себя, как одни из лучших "автоматизаторов" в округе, руководство НИИ доверило разработку этого ПО именно вам! +# - Решите эту задачу, используя цикл for. +# - Формат ввода +# - Вводится одно неотрицательное число. +# - Формат вывода +# - Требуется вывести одно натуральное число – факториал заданного числа. +# - Примечания +# - Факториал нуля принят равным 1. + + +# + +def factorial() -> None: + """factorial.""" + number_fac = int(input()) + factorial_num: int = 1 + for i in range(number_fac): + factorial_num = factorial_num * (i + 1) + print(factorial_num) + + +if __name__ == "__main__": + factorial() + + +# - + +# ## 10.Маршрут построен +# +# - Навигация всегда была важна. Нам достался архив маршрутов движения, но их так много, что без автоматизации справиться с ними просто невозможно. +# - Каждый маршрут представляет собой последовательность шагов в одном из четырёх направлений: +# - СЕВЕР +# - ЮГ +# - ВОСТОК +# - ЗАПАД +# - Для формализации маршрутов была выбрана географическая система координат в которой две оси (СЕВЕР-ЮГ и ВОСТОК-ЗАПАД), а единичный отрезок по каждой из них равен одному шагу. +# - Напишите программу, которая по заданному маршруту определит, в какой именно точке мы очутимся, если изначально находимся в точке(0;0). +# - Формат ввода +# - Вводятся инструкции маршрута в виде: +# - <направление> +# - <количество шагов> +# - Ввод завершается строкой СТОП +# - Формат вывода +# - Два целых числа – координаты конечной точки маршрута. + + +# + +def route_planning() -> None: + """route_planning.""" + x_step: int = 0 + y_steep: int = 0 + direction: str + steps: int + + while (direction := str(input())) != "СТОП": + steps = int(input()) + if direction == "СЕВЕР": + y_steep += steps + elif direction == "ЮГ": + y_steep -= steps + elif direction == "ВОСТОК": + x_step += steps + elif direction == "ЗАПАД": + x_step -= steps + print(y_steep) + print(x_step) + + +if __name__ == "__main__": + route_planning() + + +# - + +# ## 11.Цифровая сумма +# - Многие люди любят манипуляции с цифрами чисел. +# - Одно из самых простых действий – найти сумму цифр числа. +# - Напишите программу, которая выполнит эту задачу. +# - Она поможет потренироваться в построении базовых алгоритмов с циклом while. +# - Формат ввода +# - Вводится одно натуральное число. +# - Формат вывода +# - Требуется вывести одно натуральное число – сумму цифр исходного. + + +# + +def sum_of_digits() -> None: + """sum_of_digits.""" + numb_count: int = int(input()) + count_number: int = 0 + + while numb_count > 0: + count_number += numb_count % 10 + numb_count = numb_count // 10 + print(count_number) + + +if __name__ == "__main__": + sum_of_digits() + + +# - + +# ## 12.Сильная цифра +# - Мы продолжаем наши эксперименты с числами! +# - На этот раз нужно выполнить другое действие — найти максимальную цифру числа. +# - Напишите программу для выполнения этого действия. +# - Формат ввода +# - Вводится одно натуральное число. +# - Формат вывода +# - Требуется вывести одно натуральное число – максимальную цифру исходного. + + +# + +def strong_number() -> None: + """strong_figure.""" + numb_simple: int = int(input()) + count_num: int = 0 + while numb_simple > 0: + count_num = max(count_num, numb_simple % 10) + numb_simple = numb_simple // 10 + print(count_num) + + +if __name__ == "__main__": + strong_number() + + +# - + +# ## 13.Первому игроку приготовиться 2.0 +# - Время передохнуть! Если чувствуете усталость, сделайте короткий отдых и возвращайтесь, когда будете готовы. +# - Во многих играх порядок определяется броском кубика или монетки, а у нас — лексикографическим сравнением имён. +# - Первым ходит тот, чьё имя идёт раньше в алфавитном порядке. +# - Определите, кто из игроков начнёт игру, используя цикл for. +# - Формат ввода +# - В первой строке записано одно натуральное число N – количество игроков. +# - В каждой из последующих N строк записано одно имя игрока (используются только латинские и кириллические символы). +# - Формат вывода +# - Имя игрока, который будет ходить первым. + + +# + +def first_player_2() -> None: + """first_player.""" + players: int = int(input()) + if players == 1: + print(input()) + first_player: str = input() + for _ in range(players - 1): + name: str = input() + first_player = min(first_player, name) + print(first_player) + + +if __name__ == "__main__": + first_player_2() + + +# - + +# ## 14.Простая задача +# - Одним из самых интересных видов чисел в математике являются простые числа. +# - Они остаются загадкой для учёных по всему миру и продолжают изучаться. +# - Кроме того, простые числа находят применение в вычислительной технике — они лежат в основе алгоритмов шифрования данных. +# - Напишите программу, которая определяет, является ли число простым. Эта задача поможет вам потренироваться в построении базовых алгоритмов с циклом for. +# - Формат ввода +# - Вводится одно натуральное число. +# - Формат вывода +# - Требуется вывести сообщение "YES" если число простое, иначе – "NO". +# - Примечание +# - Простым называется число, которое имеет ровно два делителя. + + +# + +def simple_task() -> None: + """simple_task.""" + number_task: int = int(input()) + if number_task < 2: + print("NO") + else: + is_prime: bool = True + for divisor in range(2, int(number_task**0.5) + 1): + if number_task % divisor == 0: + is_prime = False + break + print("YES" if is_prime else "NO") + + +if __name__ == "__main__": + simple_task() + + +# - + +# ## 15.Зайка - 4 +# - Где зайки, там и циклы. На этот раз тренируемся использовать for. +# - Долгая поездка в поезде — испытание для родителей. Чтобы дети не скучали, они играют в поиск зверушек в придорожной растительности. +# - Давайте присоединимся к этой игре и посчитаем, в скольких строках встречается зайка! +# - Формат ввода +# - В первой строке записано натуральное число N – количество выделенных придорожных местностей. В каждой из N последующих строка записано описание придорожной местности. +# - Формат вывода +# - Количество строк в которых есть зайка. + + +# + +def rabbit_fore() -> None: + """rabbit_fore.""" + n_rabbit: int = int(input()) + count: int = 0 + + for _ in range(n_rabbit): + line = input() + if "зайка" in line: + count += 1 + print(count) + + +if __name__ == "__main__": + rabbit_fore() + + +# - + +# ## 16.А роза упала на лапу Азора 2.0 +# - Следующая задача достаточно сложная. Поэтому чуть-чуть отдыха не повредит. Выпейте чашку чая, отдохните, а затем продолжайте! +# - В прошлом параграфе мы уже решали задачу о нахождении палиндрома. Давайте вспомним её суть: +# - Палиндром — это число, слово или фраза, которые читаются одинаково слева направо и справа налево. +# - Напишите программу, которая проверяет, является ли заданное число палиндромом. В этот раз будем использовать цикл while. +# - Формат ввода +# - Одно натуральное число +# - Формат вывода +# - YES если число является палиндромом, иначе NO. + + +# + +def palindrome_word() -> None: + """palindrome_word.""" + numb: str = input() + length: int = len(numb) + left: int = 0 + right: int = length - 1 + is_palindrome: bool = True + while left < right: + if numb[left] != numb[right]: + is_palindrome = False + break + left += 1 + right -= 1 + print("YES" if is_palindrome else "NO") + + +if __name__ == "__main__": + palindrome_word() + + +# - + +# ## 17.Чётная чистота +# - Одно из интересных действий, которое можно совершить – очистить число от определённых цифр. +# - Напишите программу для очистки числа от всех чётных цифр, используя цикл while. +# - Формат ввода +# - Одно натуральное число +# - Формат вывода +# - Одно натуральное число - результат очистки. + + +# + +def clearing_numbers() -> None: + """clearing_numbers.""" + count: int = int(input()) + numbers: str = "" + while count > 0: + numb: int = count % 10 + if numb % 2 != 0: + numbers += str(numb) + else: + pass + count = count // 10 + revers_numb: str = numbers[::-1] + print(revers_numb) + + +if __name__ == "__main__": + clearing_numbers() + + +# - + +# ## 18.Простая задача 2.0 +# - Математика, "простые числа" и цикл while. +# - "Простые числа" не поддаются формализации и до сих пор изучаются учеными по всему миру. +# - Они применяются в вычислительной техники, как основа для алгоритмов шифрования данных. +# - Напишите программу для разложения числа на простые множители. +# - Формат ввода +# - Вводится одно натуральное число. +# - Формат вывода +# - Требуется составить математическое выражение – произведение простых неубывающих чисел, которое в результате дает исходное. + + +# + +def simple_task_2() -> None: + """simple_task_2.""" + numb: int = int(input()) + if numb == 1: + print("1") + else: + numbers: str = "" + count: int = 2 + while numb > 1: + while numb % count == 0: + if numbers: + numbers += " * " + str(count) + else: + numbers = str(count) + numb = numb // count + count += 1 + print(numbers) + + +if __name__ == "__main__": + simple_task_2() + + +# - + +# ## 19.Игра в «Угадайку» +# - Многие люди любят играть в различные "Угадайки". +# - Давайте сымитируем такую игру между двумя людьми. +# - Ваша задача — написать программу, которая угадывает загаданное целое число от 1 до 1000 с использованием цикла while. +# - Пользователь (или тестирующая система) загадывает число и не сообщает его программе. +# - Угадать число нужно не более чем за 10 попыток. +# - На каждую попытку пользователь отвечает одной из фраз: +# - Больше +# - Меньше +# - Угадал! + + +# + +def guessing_game() -> None: + """guessing_game.""" + a_num: int = 1 + b_num: int = 1001 + z_num: int = 500 + print(z_num) + answer: str + while (answer := input()) != "Угадал!": + if answer == "Больше": + a_num = z_num + z_num = (a_num + b_num) // 2 + print(z_num) + if answer == "Меньше": + b_num = z_num + z_num = (a_num + b_num) // 2 + print(z_num) + print("Число отгадано") + + +if __name__ == "__main__": + guessing_game() + + +# - + +# ## 20.Хайпанём немножечко! +# - Блокчейн (blockchain) переводится как «цепочка блоков». Это способ хранения данных, защищённый от подделки, используемый, в частности, криптовалютой биткоин. +# - Блокчейн действительно представляет собой последовательность блоков. Каждый блок представляет собой некоторую полезную информацию (в частности, в случае биткоина это список транзакций за определённый период времени — кто кому когда сколько денег передал), снабжённую случайным числом и некоторыми служебными данными, в том числе хэшем — числом, которое по определённой формуле зависит от остальной части блока и хэша предыдущего блока. +# - Хэш должен быть меньше определённого числа. При этом формула, по которой вычисляется хэш, устроена так, что невозможно получить достаточно маленький хэш иначе, чем перебирая различные значения случайного числа. Поэтому если злоумышленник решит подделать блокчейн (и, допустим, вставить в его середину блок с записью о том, что все люди передают ему все свои деньги), то ему придётся подобрать новое случайное число в новое поддельном блоке и всех последующих (ведь хэш каждого следующего блока зависит от хэша предыдущего), что потребует невозможно больших вычислительных мощностей. +# - Поэтому блокчейн в целом защищён от подобных атак. +# - Напишите программу, которая проводит проверку правильности хэшей в модельном блокчейне с простой хэш-функцией. +# - Блок bn с номером n включает полезную информацию mn, представленную натуральным числом, r n — случайное число от 0 до 255 и hn — хеш (целое число от 0 до 255). У каждого блока хэш вычисляется по формуле hn=37×(mn+rn+hn−1)(по модулю 256), при вычислении хэша начального блока h0 вместо хэша предыдущего блока берётся ноль. +# - При этом каждый блок представлен одним числом bn=hn+rn×256+mn×256**2. При этом требуется, чтобы хэш hnбыл меньше 100. +# - Формат ввода +# - На первой строке вводится натуральное число N — количество блоков. Далее следуют N чисел bn, каждое на отдельной строке. +# - Формат вывода +# - Следует вывести номер первого блока, у которого неправильный хэш (не меньше 100 или не совпадает с вычисленным по указанной в условии формуле), или -1, если все хэши в блокчейне правильные. Нумерация блоков идёт с нуля, т. е. они имеют номера от 0 до N-1. + + +# + +def hype() -> None: + """hype.""" + quantity: int = int(input()) + previous_hash: int = 0 + err: int = 0 + is_err: bool = False + + for i in range(quantity): + block: int = int(input()) + hash_value: int = block % 256 + r_numb: int = (block // 256) % 256 + m_numb: int = block // 256**2 + calculated_hash: int = (37 * (m_numb + r_numb + previous_hash)) % 256 + if calculated_hash != hash_value or calculated_hash >= 100: + if is_err is False: + err = i + is_err = True + previous_hash = hash_value + if is_err is False: + print(-1) + else: + print(err) + + +if __name__ == "__main__": + hype() diff --git a/python/yandex/functions_scopes_4_1.ipynb b/python/yandex/functions_scopes_4_1.ipynb new file mode 100644 index 00000000..f7d427eb --- /dev/null +++ b/python/yandex/functions_scopes_4_1.ipynb @@ -0,0 +1,790 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "id": "32b5e96a", + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"Функции. Области видимости.Передача параметров в функции.\n", + "\n", + "вы научитесь создавать собственные функции, передавать в них\n", + "параметры и возвращать значения. Разберётесь, как устроены\n", + "локальные и глобальные переменные и как избежать ошибок при\n", + "работе с областями видимости. Вы узнаете, как устроены\n", + "локальные и глобальные переменные — и почему с глобальными\n", + "нужно быть осторожными.\n", + "\"\"\"\n", + "# pylint: disable=unused-import" + ] + }, + { + "cell_type": "markdown", + "id": "5a1f4a68", + "metadata": {}, + "source": [ + "## Функциональное приветствие.\n", + "\n", + "- Когда программа запускается, она может обращаться к пользователю по имени — это просто и приятно.\n", + "- Научимся писать функцию, которая выводит приветствие в нужном формате.\n", + "- Напишите функцию print_hello(name), которая принимает имя и выводит строку приветствия: Hello, <имя>!\n", + "- Не добавляйте вызовов функции вне её тела — программа будет использоваться как библиотека.\n", + "- Примечание\n", + "- Ваше решение должно содержать только функции.\n", + "- В решении не должно быть вызовов требуемых функций. Для форматирования строки используйте f-строку." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ce53fe7d", + "metadata": {}, + "outputs": [], + "source": [ + "from typing import ClassVar, List, Literal, TypeVar, Union\n", + "\n", + "\n", + "def print_hello(name: str) -> None:\n", + " \"\"\"Приветствует пользователя по имени.\"\"\"\n", + " print(f\"Hello, {name}!\")" + ] + }, + { + "cell_type": "markdown", + "id": "85d71513", + "metadata": {}, + "source": [ + "## Функциональный НОД.\n", + "\n", + "- Программы часто используют математические функции — например, чтобы упростить дробь или найти общий множитель.\n", + "- Одной из таких базовых функций является НОД — наибольший общий делитель двух чисел.\n", + "- Напишите функцию gcd, которая принимает два натуральных числа и возвращает их наибольший общий делитель.\n", + "- Примечание\n", + "- Ваше решение должно содержать только функции.\n", + "- В решении не должно быть вызовов требуемых функций." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "75e77597", + "metadata": {}, + "outputs": [], + "source": [ + "def gcd(a_gcd: int, b_gcd: int) -> int:\n", + " \"\"\"Вычисляет наибольший общий делитель двух чисел.\"\"\"\n", + " while b_gcd != 0:\n", + " a_gcd, b_gcd = b_gcd, a_gcd % b_gcd\n", + " return a_gcd" + ] + }, + { + "cell_type": "markdown", + "id": "2b4365a6", + "metadata": {}, + "source": [ + "## Длина числа.\n", + "\n", + "- Иногда в программе нужно узнать, сколько цифр содержит число.\n", + "- Например, чтобы проверить длину пароля, номера телефона или банковского счёта.\n", + "- Разработайте функцию number_length, которая принимает одно целое число и возвращает его длину без учёта знака.\n", + "- Примечание\n", + "- Ваше решение должно содержать только функции.\n", + "- В решении не должно быть вызовов требуемых функций." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "04fb92ee", + "metadata": {}, + "outputs": [], + "source": [ + "def number_length(number_len: int) -> int:\n", + " \"\"\"Возвращает количество цифр в числе.\"\"\"\n", + " number_len = abs(number_len)\n", + " number_len = len(str(number_len))\n", + " return number_len" + ] + }, + { + "cell_type": "markdown", + "id": "a594d353", + "metadata": {}, + "source": [ + "## Копейка рубль бережёт.\n", + "\n", + "- Программа может обрабатывать любые данные — даже содержимое кошелька.\n", + "- Представьте, что у вас есть список купюр и монет. Нужно выбрать из него только мелочь — всё, что меньше 100 рублей.\n", + "- Напишите функцию take_small(money), которая принимает список номиналов и возвращает новый список — только с теми значениями, которые меньше 100. Порядок элементов должен сохраниться.\n", + "- Примечание\n", + "- Исходный список должен остаться без изменений.\n", + "- В решении не должно быть вызовов требуемых функций." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e094b7c4", + "metadata": {}, + "outputs": [], + "source": [ + "def take_small(money_small: list[int]) -> list[int]:\n", + " \"\"\"Возвращает список значений меньше 100.\"\"\"\n", + " result_small = []\n", + " for i_small in money_small:\n", + " if i_small < 100:\n", + " result_small.append(i_small)\n", + " return result_small" + ] + }, + { + "cell_type": "markdown", + "id": "2d67179f", + "metadata": {}, + "source": [ + "## Виртуальный кликер.\n", + "\n", + "- Допустим, вы создаёте онлайн-кликер — игру, где каждое нажатие увеличивает счёт.\n", + "- Реализуем основу такой игры на Python.\n", + "- Создайте две функции:\n", + "- click() — увеличивает значение счётчика на 1;\n", + "- get_count() — возвращает текущее значение счётчика.\n", + "- Примечание\n", + "- В решении не должно быть вызовов функций." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d1551926", + "metadata": {}, + "outputs": [], + "source": [ + "class Counter:\n", + " \"\"\"Счетчик кликов.\"\"\"\n", + "\n", + " __count: ClassVar[int] = 0\n", + "\n", + " @classmethod\n", + " def click(cls) -> None:\n", + " \"\"\"Увеличивает счетчик на 1.\"\"\"\n", + " cls.__count += 1\n", + "\n", + " @classmethod\n", + " def get_count(cls) -> int:\n", + " \"\"\"Возвращает текущее значение счетчика.\"\"\"\n", + " return cls.__count" + ] + }, + { + "cell_type": "markdown", + "id": "ff08764f", + "metadata": {}, + "source": [ + "## Странная игра.\n", + "\n", + "- Позади уже первая пятёрка задач — вы отлично справляетесь!\n", + "- Пора потренироваться с изменяемыми переменными и логикой принятия решений.\n", + "- Петя и Ваня решили сыграть в игру «Перетягивание числа».\n", + "- Правила простые:\n", + "- Петя увеличивает общее число.\n", + "- Ваня уменьшает его.\n", + "- Если в итоге получается положительное число — побеждает Петя.\n", + "- Если отрицательное — выигрывает Ваня.\n", + "- Если сумма равна нулю — ничья.\n", + "- Создайте две функции:\n", + "- move(player, number) — принимает имя игрока и его число, обновляет общий счёт;\n", + "- game_over() — возвращает результат: 'Петя', 'Ваня' или 'Ничья'.\n", + "- Общая сумма изначально равна 0.\n", + "- Примечание\n", + "- В решении не должно быть вызовов требуемых функций." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9892f2c2", + "metadata": {}, + "outputs": [], + "source": [ + "class Game:\n", + " \"\"\"Класс для управления игровым счетом.\"\"\"\n", + "\n", + " _total: int = 0\n", + "\n", + " @classmethod\n", + " def move(cls, player: Literal[\"Петя\", \"Ваня\"], number: int) -> None:\n", + " \"\"\"Обновляет счет в игре.\"\"\"\n", + " if player == \"Петя\":\n", + " cls._total += number\n", + " elif player == \"Ваня\":\n", + " cls._total -= number\n", + "\n", + " @classmethod\n", + " def game_over(cls) -> Literal[\"Петя\", \"Ваня\", \"Ничья\"]:\n", + " \"\"\"Определяет победителя игры.\"\"\"\n", + " if cls._total > 0:\n", + " return \"Петя\"\n", + " if cls._total < 0:\n", + " return \"Ваня\"\n", + " return \"Ничья\"" + ] + }, + { + "cell_type": "markdown", + "id": "95b62c75", + "metadata": {}, + "source": [ + "## Максимальный максимум.\n", + "\n", + "- Работа с таблицами чисел — важный навык, особенно если вы анализируете данные.\n", + "- Попробуем найти самое большое число в такой таблице.\n", + "- Напишите функцию max2D(matrix), которая принимает список списков целых чисел и возвращает максимальный элемент.\n", + "- Примечание\n", + "- В решении не должно быть вызовов требуемых функций." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f95e573a", + "metadata": {}, + "outputs": [], + "source": [ + "def max_2d(matrix: List[List[int]]) -> int:\n", + " \"\"\"Находит максимальный элемент в матрице.\"\"\"\n", + " return max(max(row) for row in matrix)" + ] + }, + { + "cell_type": "markdown", + "id": "3ace0db6", + "metadata": {}, + "source": [ + "## Числовое фрагментирование.\n", + "\n", + "- Допустим, у вас есть список чисел, и вы хотите разбить его на возрастающие фрагменты — участки, где каждое следующее число больше предыдущего. Такая задача может пригодиться при анализе последовательностей, графиков или пользовательских действий.\n", + "- Напишите функцию fragments(numbers), которая принимает список целых чисел и возвращает список вложенных списков — каждый из которых представляет собой возрастающий отрезок исходной последовательности.\n", + "- Примечание\n", + "- В решении не должно быть вызовов требуемых функций." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c2c61643", + "metadata": {}, + "outputs": [], + "source": [ + "def fragments(numbers: list[int]) -> list[list[int]]:\n", + " \"\"\"Разбивает список на возрастающие последовательности.\"\"\"\n", + " if not numbers:\n", + " return []\n", + "\n", + " result = [[numbers[0]]]\n", + "\n", + " for i in range(1, len(numbers)):\n", + " if numbers[i] > numbers[i - 1]:\n", + " result[-1].append(numbers[i])\n", + " else:\n", + " result.append([numbers[i]])\n", + " return result" + ] + }, + { + "cell_type": "markdown", + "id": "4a8385a5", + "metadata": {}, + "source": [ + "## Имя of the month.\n", + "\n", + "- Программы часто работают с датами.\n", + "- Допустим, у вас есть номер месяца и язык интерфейса.\n", + "- Напишите функцию, которая по этим данным возвращает название месяца с заглавной буквы.\n", + "- Создайте функцию month(number, language), которая принимает:\n", + "- number — номер месяца от 1 до 12,\n", + "- language — строку \"ru\" или \"en\", и возвращает название соответствующего месяца на нужном языке\n", + "- Примечание\n", + "- Ваше решение должно содержать только функции.\n", + "- В решении не должно быть вызовов требуемых функций." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1aa1a8de", + "metadata": {}, + "outputs": [], + "source": [ + "def month(number_month: int, language_month: Literal[\"ru\", \"en\"]) -> str:\n", + " \"\"\"Возвращает название месяца по номеру и языку.\"\"\"\n", + " names_month = {\n", + " \"ru\": [\n", + " \"Январь\",\n", + " \"Февраль\",\n", + " \"Март\",\n", + " \"Апрель\",\n", + " \"Май\",\n", + " \"Июнь\",\n", + " \"Июль\",\n", + " \"Август\",\n", + " \"Сентябрь\",\n", + " \"Октябрь\",\n", + " \"Ноябрь\",\n", + " \"Декабрь\",\n", + " ],\n", + " \"en\": [\n", + " \"January\",\n", + " \"February\",\n", + " \"March\",\n", + " \"April\",\n", + " \"May\",\n", + " \"June\",\n", + " \"July\",\n", + " \"August\",\n", + " \"September\",\n", + " \"October\",\n", + " \"November\",\n", + " \"December\",\n", + " ],\n", + " }\n", + "\n", + " return names_month[language_month][number_month - 1]" + ] + }, + { + "cell_type": "markdown", + "id": "e79f3dcc", + "metadata": {}, + "source": [ + "## Числовая строка.\n", + "\n", + "- Давайте теперь научимся преобразовывать строку чисел в структуру данных, с которой удобно работать.\n", + "- Создайте функцию split_numbers(text), которая принимает строку целых чисел, разделённых пробелами, и возвращает кортеж этих чисел.\n", + "- Примечание\n", + "- Ваше решение должно содержать только функции.\n", + "- В решении не должно быть вызовов требуемых функций.\n", + "- Вы можете спросить: почему кортеж, а не список. Всё дело в безопасности. Кортежи неизменяемые коллекции и их безопаснее передавать в функцию или из неё." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e48e8903", + "metadata": {}, + "outputs": [], + "source": [ + "def split_numbers(text_split: str) -> tuple[int, ...]:\n", + " \"\"\"Преобразует строку чисел в кортеж целых чисел.\"\"\"\n", + " return tuple(int(x_split) for x_split in text_split.split())" + ] + }, + { + "cell_type": "markdown", + "id": "ebfd0646", + "metadata": {}, + "source": [ + "## Поиск гор.\n", + "\n", + "- Представьте, что вы смотрите на линию горизонта.\n", + "- Перед вами — последовательность чисел, обозначающих высоты.\n", + "- Иногда среди них встречаются «горы» — точки, которые выше своих ближайших соседей.\n", + "- Напишите функцию find_mountains(heights), которая принимает список высот и возвращает кортеж номеров всех гор. Нумерация начинается с 1.\n", + "- Считаем, что края списка окружены горами бесконечной высоты — поэтому сравниваются только внутренние точки." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7c87be02", + "metadata": {}, + "outputs": [], + "source": [ + "def find_mountains(heights: list[int]) -> tuple[int, ...]:\n", + " \"\"\"Находит позиции вершин в списке высот.\"\"\"\n", + " mountains = []\n", + " for i in range(1, len(heights) - 1):\n", + " if heights[i] > heights[i - 1] and heights[i] > heights[i + 1]:\n", + " mountains.append(i + 1)\n", + " return tuple(mountains)" + ] + }, + { + "cell_type": "markdown", + "id": "92ed8acb", + "metadata": {}, + "source": [ + "## Поиск гор 2.\n", + "\n", + "- Теперь давайте посмотрим на местность с высоты — словно вы летите на самолёте.\n", + "- Перед вами — прямоугольная таблица с высотами.\n", + "- Внутри этой сетки тоже могут встречаться «горы» — точки, которые выше всех своих соседей по 8 направлениям.\n", + "- Создайте функцию find_mountains(data), которая принимает список списков чисел и возвращает кортеж пар номеров всех гор.\n", + "- Нумерация начинается с 1 (по строкам и столбцам).\n", + "- Края таблицы считаются окружёнными горами бесконечной высоты, поэтому в них гор быть не может.\n", + "- Примечание\n", + "- В решении не должно быть вызовов требуемых функций." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "bc25a3da", + "metadata": {}, + "outputs": [], + "source": [ + "def find_mountains_2(data: list[list[int]]) -> tuple[tuple[int, int], ...]:\n", + " \"\"\"Находит координаты вершин в матрице высот.\"\"\"\n", + " mountains = []\n", + " rows = len(data)\n", + " cols = len(data[0])\n", + "\n", + " for i in range(1, rows - 1):\n", + " for j_index in range(1, cols - 1):\n", + " current = data[i][j_index]\n", + " is_mountain = True\n", + "\n", + " for xi in [-1, 0, 1]:\n", + " for xj in [-1, 0, 1]:\n", + " if xi == 0 and xj == 0:\n", + " continue\n", + " if data[i + xi][j_index + xj] >= current:\n", + " is_mountain = False\n", + " break\n", + " if not is_mountain:\n", + " break\n", + " if is_mountain:\n", + " mountains.append((i + 1, j_index + 1))\n", + " return tuple(mountains)" + ] + }, + { + "cell_type": "markdown", + "id": "e52f5111", + "metadata": {}, + "source": [ + "## Модернизация системы вывода.\n", + "\n", + "- Представьте, что вы создаёте «умную» систему вывода, которая не повторяет уже напечатанные строки.\n", + "- Это удобно, когда важно не засорять лог или консоль дубликатами.\n", + "- Создайте функцию modern_print(text), которая печатает переданную строку, только если она ещё не выводилась ранее.\n", + "- Все уникальные строки должны запоминаться.\n", + "- Примечание\n", + "- В решении не должно быть вызовов требуемых функций." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b3742432", + "metadata": {}, + "outputs": [], + "source": [ + "printed_texts: set[str] = set()\n", + "\n", + "\n", + "def modern_print(text_mod: str) -> None:\n", + " \"\"\"Печатает текст только если он не печатался ранее.\"\"\"\n", + " if text_mod not in printed_texts:\n", + " print(text_mod)\n", + " printed_texts.add(text_mod)" + ] + }, + { + "cell_type": "markdown", + "id": "fce1164b", + "metadata": {}, + "source": [ + "## Шахматный «обед».\n", + "\n", + "- В шахматах конь двигается особым образом: буквой \"Г\".\n", + "- Он может съесть фигуру, если та находится на расстоянии двух клеток по одной оси и одной — по другой.\n", + "- Напишите функцию can_eat(horse, other), которая принимает:\n", + "- координаты коня,\n", + "- координаты другой фигуры (оба значения — кортежи из двух чисел), и возвращает True, если конь может атаковать фигуру, и False — если не может.\n", + "- Примечание\n", + "- Ваше решение должно содержать только функции.\n", + "- В решении не должно быть вызовов требуемых функций." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "fa582a9b", + "metadata": {}, + "outputs": [], + "source": [ + "def can_eat(horse_eat: tuple[int, int], other_eat: tuple[int, int]) -> bool:\n", + " \"\"\"Проверяет, может ли конь съесть фигуру за один ход.\"\"\"\n", + " (hx, hy), (ox, oy) = horse_eat, other_eat\n", + " dx = abs(hx - ox)\n", + " dy = abs(hy - oy)\n", + " return (dx == 1 and dy == 2) or (dx == 2 and dy == 1)" + ] + }, + { + "cell_type": "markdown", + "id": "7ca254ac", + "metadata": {}, + "source": [ + "## Словарная строка.\n", + "\n", + "- Теперь научимся превращать строки с данными в словари.\n", + "- Это полезно, если вы получаете настройки из текстового файла или обрабатываете ввод от пользователя.\n", + "- Создайте функцию get_dict(text), которая принимает строку вида: ключ1=значение1;ключ2=значение2;... и возвращает словарь с этими парами.\n", + "- Тип ключей — всегда строка. Значения попробуйте привести к int или float, если это возможно.\n", + "- Примечание\n", + "- В решении не должно быть вызовов требуемых функций." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f5104375", + "metadata": {}, + "outputs": [], + "source": [ + "def get_dict(text: str) -> dict[str, int | float | str]:\n", + " \"\"\"Парсит строку в словарь с автоматическим определением типов.\"\"\"\n", + " result: dict[str, int | float | str] = {}\n", + " pairs = text.split(\";\")\n", + "\n", + " for pair in pairs:\n", + " if \"=\" in pair:\n", + " key, value_str = pair.split(\"=\", 1)\n", + " key = key.strip()\n", + " value_str = value_str.strip()\n", + "\n", + " try:\n", + " value: int | float | str = int(value_str)\n", + " except ValueError:\n", + " try:\n", + " value = float(value_str)\n", + " except ValueError:\n", + " value = value_str\n", + " result[key] = value\n", + " return result" + ] + }, + { + "cell_type": "markdown", + "id": "9b4ac9ac", + "metadata": {}, + "source": [ + "## А роза упала на лапу Азора 7.0.\n", + "\n", + "- Создайте функцию is_palindrome(x), которая принимает одно значение (число, строку, кортеж или список) и возвращает True, если передан палиндром, и False — в противном случае.\n", + "- Примечание\n", + "- Ваше решение должно содержать только функции.\n", + "- В решении не должно быть вызовов требуемых функций." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6f2f14f7", + "metadata": {}, + "outputs": [], + "source": [ + "def is_palindrome(x_is: Union[list[str], tuple[str, ...], int, str]) -> bool:\n", + " \"\"\"Проверяет, является ли объект палиндромом.\"\"\"\n", + " if isinstance(x_is, int):\n", + " s_is = str(x_is)\n", + " return s_is == s_is[::-1]\n", + " if isinstance(x_is, str):\n", + " return x_is == x_is[::-1]\n", + " return list(x_is) == list(reversed(x_is))" + ] + }, + { + "cell_type": "markdown", + "id": "22811e9a", + "metadata": {}, + "source": [ + "## Простая задача 5.0.\n", + "\n", + "- Простые числа — важное понятие в математике и программировании.\n", + "- Они делятся только на 1 и на себя. Проверка числа на простоту используется в шифровании, аналитике и олимпиадных задачах.\n", + "- Напишите функцию is_prime, которая принимает натуральное число, а возвращает булево значение: True — если переданное число простое, а иначе — False.\n", + "- Примечание\n", + "- Ваше решение должно содержать только функции.\n", + "- В решении не должно быть вызовов требуемых функций." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0fb30b4d", + "metadata": {}, + "outputs": [], + "source": [ + "def is_prime(n_prime: int) -> bool:\n", + " \"\"\"Проверяет, является ли число простым.\"\"\"\n", + " if n_prime < 2:\n", + " return False\n", + " if n_prime == 2:\n", + " return True\n", + " if n_prime % 2 == 0:\n", + " return False\n", + " i_prime = 3\n", + " while i_prime * i_prime <= n_prime:\n", + " if n_prime % i_prime == 0:\n", + " return False\n", + " i_prime += 2\n", + " return True" + ] + }, + { + "cell_type": "markdown", + "id": "d85a3676", + "metadata": {}, + "source": [ + "## Слияние.\n", + "\n", + "- Теперь научимся объединять отсортированные коллекции в одну.\n", + "- Это важный шаг в алгоритмах сортировки и при обработке данных.\n", + "- Напишите функцию merge, которая принимает два отсортированных по возрастанию кортежа целых чисел, а возвращает один из всех переданных чисел.\n", + "- Примечание\n", + "- Ваше решение должно содержать только функции.\n", + "- В решении не должно быть вызовов требуемых функций." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b382243a", + "metadata": {}, + "outputs": [], + "source": [ + "T = TypeVar(\"T\", int, float, str)\n", + "\n", + "\n", + "def merge(tuple_1: tuple[T, ...], tuple_2: tuple[T, ...]) -> tuple[T, ...]:\n", + " \"\"\"Объединяет два отсортированных кортежа в один отсортированный.\"\"\"\n", + " result_mer = []\n", + " i_mer, j_mer = 0, 0\n", + " while i_mer < len(tuple_1) and j_mer < len(tuple_2):\n", + " if tuple_1[i_mer] <= tuple_2[j_mer]:\n", + " result_mer.append(tuple_1[i_mer])\n", + " i_mer += 1\n", + " else:\n", + " result_mer.append(tuple_2[j_mer])\n", + " j_mer += 1\n", + " while i_mer < len(tuple_1):\n", + " result_mer.append(tuple_1[i_mer])\n", + " i_mer += 1\n", + " while j_mer < len(tuple_2):\n", + " result_mer.append(tuple_2[j_mer])\n", + " j_mer += 1\n", + " return tuple(result_mer)" + ] + }, + { + "cell_type": "markdown", + "id": "d5e34ab5", + "metadata": {}, + "source": [ + "## Обмен содержимым.\n", + "\n", + "- Иногда нужно поменять содержимое двух списков местами так, чтобы ссылки на них остались прежними.\n", + "- То есть объекты остаются теми же, а данные — полностью меняются.\n", + "- Создайте функцию swap(a, b), которая принимает два списка и меняет их содержимое местами.\n", + "- Результат должен быть виден во всех переменных, которые ссылаются на эти списки.\n", + "- Примечание\n", + "- В решении не должно быть вызовов требуемых функций." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4dac734b", + "metadata": {}, + "outputs": [], + "source": [ + "_T = TypeVar(\"_T\")\n", + "\n", + "\n", + "def swap(a_swap: list[_T], b_swap: list[_T]) -> None:\n", + " \"\"\"Меняет местами содержимое двух списков.\"\"\"\n", + " temp = a_swap[:]\n", + " a_swap[:] = b_swap[:]\n", + " b_swap[:] = temp" + ] + }, + { + "cell_type": "markdown", + "id": "fdcca590", + "metadata": {}, + "source": [ + "## Цезарю — Цезарево.\n", + "\n", + "- В Древнем Риме использовалась особая система счисления. Чтобы попрактиковаться в сложении римских чисел, напишите функцию roman, которая принимает два натуральных числа a и b, а возвращает строку вида: РИМСКОЕ_А + РИМСКОЕ_B = РИМСКАЯ_СУММА\n", + "- Примечание\n", + "- В решении не должно быть вызовов требуемых функций." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "cb8be305", + "metadata": {}, + "outputs": [], + "source": [ + "def to_roman(n_roman: int) -> str:\n", + " \"\"\"Конвертирует целое число в римскую запись.\"\"\"\n", + " val_roman = [\n", + " (1000, \"M\"),\n", + " (900, \"CM\"),\n", + " (500, \"D\"),\n", + " (400, \"CD\"),\n", + " (100, \"C\"),\n", + " (90, \"XC\"),\n", + " (50, \"L\"),\n", + " (40, \"XL\"),\n", + " (10, \"X\"),\n", + " (9, \"IX\"),\n", + " (5, \"V\"),\n", + " (4, \"IV\"),\n", + " (1, \"I\"),\n", + " ]\n", + " result_roman = \"\"\n", + " for num_roman, symbol_roman in val_roman:\n", + " while n_roman >= num_roman:\n", + " result_roman += symbol_roman\n", + " n_roman -= num_roman\n", + " return result_roman\n", + "\n", + "\n", + "def roman(a_rom: int, b_rom: int) -> str:\n", + " \"\"\"Возвращает строку с римскими числами и их суммой.\"\"\"\n", + " roman_a = to_roman(a_rom)\n", + " roman_b = to_roman(b_rom)\n", + " roman_sum = to_roman(a_rom + b_rom)\n", + " return f\"{roman_a} + {roman_b} = {roman_sum}\"" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.18" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/python/yandex/functions_scopes_4_1.py b/python/yandex/functions_scopes_4_1.py new file mode 100644 index 00000000..6ec98d30 --- /dev/null +++ b/python/yandex/functions_scopes_4_1.py @@ -0,0 +1,523 @@ +"""Функции. Области видимости.Передача параметров в функции. + +вы научитесь создавать собственные функции, передавать в них параметры и возвращать +значения. Разберётесь, как устроены локальные и глобальные переменные и как избежать +ошибок при работе с областями видимости. Вы узнаете, как устроены локальные и глобальные +переменные — и почему с глобальными нужно быть осторожными. +""" + +# pylint: disable=unused-import + +# ## Функциональное приветствие. +# +# - Когда программа запускается, она может обращаться к пользователю по имени — это просто и приятно. +# - Научимся писать функцию, которая выводит приветствие в нужном формате. +# - Напишите функцию print_hello(name), которая принимает имя и выводит строку приветствия: Hello, <имя>! +# - Не добавляйте вызовов функции вне её тела — программа будет использоваться как библиотека. +# - Примечание +# - Ваше решение должно содержать только функции. +# - В решении не должно быть вызовов требуемых функций. Для форматирования строки используйте f-строку. + +# + +from typing import ClassVar, List, Literal, TypeVar, Union + + +def print_hello(name: str) -> None: + """Приветствует пользователя по имени.""" + print(f"Hello, {name}!") + + +# - + +# ## Функциональный НОД. +# +# - Программы часто используют математические функции — например, чтобы упростить дробь или найти общий множитель. +# - Одной из таких базовых функций является НОД — наибольший общий делитель двух чисел. +# - Напишите функцию gcd, которая принимает два натуральных числа и возвращает их наибольший общий делитель. +# - Примечание +# - Ваше решение должно содержать только функции. +# - В решении не должно быть вызовов требуемых функций. + + +def gcd(a_gcd: int, b_gcd: int) -> int: + """Вычисляет наибольший общий делитель двух чисел.""" + while b_gcd != 0: + a_gcd, b_gcd = b_gcd, a_gcd % b_gcd + return a_gcd + + +# ## Длина числа. +# +# - Иногда в программе нужно узнать, сколько цифр содержит число. +# - Например, чтобы проверить длину пароля, номера телефона или банковского счёта. +# - Разработайте функцию number_length, которая принимает одно целое число и возвращает его длину без учёта знака. +# - Примечание +# - Ваше решение должно содержать только функции. +# - В решении не должно быть вызовов требуемых функций. + + +def number_length(number_len: int) -> int: + """Возвращает количество цифр в числе.""" + number_len = abs(number_len) + number_len = len(str(number_len)) + return number_len + + +# ## Копейка рубль бережёт. +# +# - Программа может обрабатывать любые данные — даже содержимое кошелька. +# - Представьте, что у вас есть список купюр и монет. Нужно выбрать из него только мелочь — всё, что меньше 100 рублей. +# - Напишите функцию take_small(money), которая принимает список номиналов и возвращает новый список — только с теми значениями, которые меньше 100. Порядок элементов должен сохраниться. +# - Примечание +# - Исходный список должен остаться без изменений. +# - В решении не должно быть вызовов требуемых функций. + + +def take_small(money_small: list[int]) -> list[int]: + """Возвращает список значений меньше 100.""" + result_small = [] + for i_small in money_small: + if i_small < 100: + result_small.append(i_small) + return result_small + + +# ## Виртуальный кликер. +# +# - Допустим, вы создаёте онлайн-кликер — игру, где каждое нажатие увеличивает счёт. +# - Реализуем основу такой игры на Python. +# - Создайте две функции: +# - click() — увеличивает значение счётчика на 1; +# - get_count() — возвращает текущее значение счётчика. +# - Примечание +# - В решении не должно быть вызовов функций. + + +class Counter: + """Счетчик кликов.""" + + __count: ClassVar[int] = 0 + + @classmethod + def click(cls) -> None: + """Увеличивает счетчик на 1.""" + cls.__count += 1 + + @classmethod + def get_count(cls) -> int: + """Возвращает текущее значение счетчика.""" + return cls.__count + + +# ## Странная игра. +# +# - Позади уже первая пятёрка задач — вы отлично справляетесь! +# - Пора потренироваться с изменяемыми переменными и логикой принятия решений. +# - Петя и Ваня решили сыграть в игру «Перетягивание числа». +# - Правила простые: +# - Петя увеличивает общее число. +# - Ваня уменьшает его. +# - Если в итоге получается положительное число — побеждает Петя. +# - Если отрицательное — выигрывает Ваня. +# - Если сумма равна нулю — ничья. +# - Создайте две функции: +# - move(player, number) — принимает имя игрока и его число, обновляет общий счёт; +# - game_over() — возвращает результат: 'Петя', 'Ваня' или 'Ничья'. +# - Общая сумма изначально равна 0. +# - Примечание +# - В решении не должно быть вызовов требуемых функций. + + +class Game: + """Класс для управления игровым счетом.""" + + _total: int = 0 + + @classmethod + def move(cls, player: Literal["Петя", "Ваня"], number: int) -> None: + """Обновляет счет в игре.""" + if player == "Петя": + cls._total += number + elif player == "Ваня": + cls._total -= number + + @classmethod + def game_over(cls) -> Literal["Петя", "Ваня", "Ничья"]: + """Определяет победителя игры.""" + if cls._total > 0: + return "Петя" + if cls._total < 0: + return "Ваня" + return "Ничья" + + +# ## Максимальный максимум. +# +# - Работа с таблицами чисел — важный навык, особенно если вы анализируете данные. +# - Попробуем найти самое большое число в такой таблице. +# - Напишите функцию max2D(matrix), которая принимает список списков целых чисел и возвращает максимальный элемент. +# - Примечание +# - В решении не должно быть вызовов требуемых функций. + + +def max_2d(matrix: list[list[int]]) -> int: + """Находит максимальный элемент в матрице.""" + return max(max(row) for row in matrix) + + +# ## Числовое фрагментирование. +# +# - Допустим, у вас есть список чисел, и вы хотите разбить его на возрастающие фрагменты — участки, где каждое следующее число больше предыдущего. Такая задача может пригодиться при анализе последовательностей, графиков или пользовательских действий. +# - Напишите функцию fragments(numbers), которая принимает список целых чисел и возвращает список вложенных списков — каждый из которых представляет собой возрастающий отрезок исходной последовательности. +# - Примечание +# - В решении не должно быть вызовов требуемых функций. + + +def fragments(numbers: list[int]) -> list[list[int]]: + """Разбивает список на возрастающие последовательности.""" + if not numbers: + return [] + + result = [[numbers[0]]] + + for i in range(1, len(numbers)): + if numbers[i] > numbers[i - 1]: + result[-1].append(numbers[i]) + else: + result.append([numbers[i]]) + return result + + +# ## Имя of the month. +# +# - Программы часто работают с датами. +# - Допустим, у вас есть номер месяца и язык интерфейса. +# - Напишите функцию, которая по этим данным возвращает название месяца с заглавной буквы. +# - Создайте функцию month(number, language), которая принимает: +# - number — номер месяца от 1 до 12, +# - language — строку "ru" или "en", и возвращает название соответствующего месяца на нужном языке +# - Примечание +# - Ваше решение должно содержать только функции. +# - В решении не должно быть вызовов требуемых функций. + + +def month(number_month: int, language_month: Literal["ru", "en"]) -> str: + """Возвращает название месяца по номеру и языку.""" + names_month = { + "ru": [ + "Январь", + "Февраль", + "Март", + "Апрель", + "Май", + "Июнь", + "Июль", + "Август", + "Сентябрь", + "Октябрь", + "Ноябрь", + "Декабрь", + ], + "en": [ + "January", + "February", + "March", + "April", + "May", + "June", + "July", + "August", + "September", + "October", + "November", + "December", + ], + } + + return names_month[language_month][number_month - 1] + + +# ## Числовая строка. +# +# - Давайте теперь научимся преобразовывать строку чисел в структуру данных, с которой удобно работать. +# - Создайте функцию split_numbers(text), которая принимает строку целых чисел, разделённых пробелами, и возвращает кортеж этих чисел. +# - Примечание +# - Ваше решение должно содержать только функции. +# - В решении не должно быть вызовов требуемых функций. +# - Вы можете спросить: почему кортеж, а не список. Всё дело в безопасности. Кортежи неизменяемые коллекции и их безопаснее передавать в функцию или из неё. + + +def split_numbers(text_split: str) -> tuple[int, ...]: + """Преобразует строку чисел в кортеж целых чисел.""" + return tuple(int(x_split) for x_split in text_split.split()) + + +# ## Поиск гор. +# +# - Представьте, что вы смотрите на линию горизонта. +# - Перед вами — последовательность чисел, обозначающих высоты. +# - Иногда среди них встречаются «горы» — точки, которые выше своих ближайших соседей. +# - Напишите функцию find_mountains(heights), которая принимает список высот и возвращает кортеж номеров всех гор. Нумерация начинается с 1. +# - Считаем, что края списка окружены горами бесконечной высоты — поэтому сравниваются только внутренние точки. + + +def find_mountains(heights: list[int]) -> tuple[int, ...]: + """Находит позиции вершин в списке высот.""" + mountains = [] + for i in range(1, len(heights) - 1): + if heights[i] > heights[i - 1] and heights[i] > heights[i + 1]: + mountains.append(i + 1) + return tuple(mountains) + + +# ## Поиск гор 2. +# +# - Теперь давайте посмотрим на местность с высоты — словно вы летите на самолёте. +# - Перед вами — прямоугольная таблица с высотами. +# - Внутри этой сетки тоже могут встречаться «горы» — точки, которые выше всех своих соседей по 8 направлениям. +# - Создайте функцию find_mountains(data), которая принимает список списков чисел и возвращает кортеж пар номеров всех гор. +# - Нумерация начинается с 1 (по строкам и столбцам). +# - Края таблицы считаются окружёнными горами бесконечной высоты, поэтому в них гор быть не может. +# - Примечание +# - В решении не должно быть вызовов требуемых функций. + + +def find_mountains_2(data: list[list[int]]) -> tuple[tuple[int, int], ...]: + """Находит координаты вершин в матрице высот.""" + mountains = [] + rows = len(data) + cols = len(data[0]) + + for i in range(1, rows - 1): + for j_index in range(1, cols - 1): + current = data[i][j_index] + is_mountain = True + + for xi in [-1, 0, 1]: + for xj in [-1, 0, 1]: + if xi == 0 and xj == 0: + continue + if data[i + xi][j_index + xj] >= current: + is_mountain = False + break + if not is_mountain: + break + if is_mountain: + mountains.append((i + 1, j_index + 1)) + return tuple(mountains) + + +# ## Модернизация системы вывода. +# +# - Представьте, что вы создаёте «умную» систему вывода, которая не повторяет уже напечатанные строки. +# - Это удобно, когда важно не засорять лог или консоль дубликатами. +# - Создайте функцию modern_print(text), которая печатает переданную строку, только если она ещё не выводилась ранее. +# - Все уникальные строки должны запоминаться. +# - Примечание +# - В решении не должно быть вызовов требуемых функций. + +# + +printed_texts: set[str] = set() + + +def modern_print(text_mod: str) -> None: + """Печатает текст только если он не печатался ранее.""" + if text_mod not in printed_texts: + print(text_mod) + printed_texts.add(text_mod) + + +# - + +# ## Шахматный «обед». +# +# - В шахматах конь двигается особым образом: буквой "Г". +# - Он может съесть фигуру, если та находится на расстоянии двух клеток по одной оси и одной — по другой. +# - Напишите функцию can_eat(horse, other), которая принимает: +# - координаты коня, +# - координаты другой фигуры (оба значения — кортежи из двух чисел), и возвращает True, если конь может атаковать фигуру, и False — если не может. +# - Примечание +# - Ваше решение должно содержать только функции. +# - В решении не должно быть вызовов требуемых функций. + + +def can_eat(horse_eat: tuple[int, int], other_eat: tuple[int, int]) -> bool: + """Проверяет, может ли конь съесть фигуру за один ход.""" + (hx, hy), (ox, oy) = horse_eat, other_eat + dx = abs(hx - ox) + dy = abs(hy - oy) + return (dx == 1 and dy == 2) or (dx == 2 and dy == 1) + + +# ## Словарная строка. +# +# - Теперь научимся превращать строки с данными в словари. +# - Это полезно, если вы получаете настройки из текстового файла или обрабатываете ввод от пользователя. +# - Создайте функцию get_dict(text), которая принимает строку вида: ключ1=значение1;ключ2=значение2;... и возвращает словарь с этими парами. +# - Тип ключей — всегда строка. Значения попробуйте привести к int или float, если это возможно. +# - Примечание +# - В решении не должно быть вызовов требуемых функций. + + +def get_dict(text: str) -> dict[str, int | float | str]: + """Парсит строку в словарь с автоматическим определением типов.""" + result: dict[str, int | float | str] = {} + pairs = text.split(";") + + for pair in pairs: + if "=" in pair: + key, value_str = pair.split("=", 1) + key = key.strip() + value_str = value_str.strip() + + try: + value: int | float | str = int(value_str) + except ValueError: + try: + value = float(value_str) + except ValueError: + value = value_str + result[key] = value + return result + + +# ## А роза упала на лапу Азора 7.0. +# +# - Создайте функцию is_palindrome(x), которая принимает одно значение (число, строку, кортеж или список) и возвращает True, если передан палиндром, и False — в противном случае. +# - Примечание +# - Ваше решение должно содержать только функции. +# - В решении не должно быть вызовов требуемых функций. + + +def is_palindrome(x_is: Union[list[str], tuple[str, ...], int, str]) -> bool: + """Проверяет, является ли объект палиндромом.""" + if isinstance(x_is, int): + s_is = str(x_is) + return s_is == s_is[::-1] + if isinstance(x_is, str): + return x_is == x_is[::-1] + return list(x_is) == list(reversed(x_is)) + + +# ## Простая задача 5.0. +# +# - Простые числа — важное понятие в математике и программировании. +# - Они делятся только на 1 и на себя. Проверка числа на простоту используется в шифровании, аналитике и олимпиадных задачах. +# - Напишите функцию is_prime, которая принимает натуральное число, а возвращает булево значение: True — если переданное число простое, а иначе — False. +# - Примечание +# - Ваше решение должно содержать только функции. +# - В решении не должно быть вызовов требуемых функций. + + +def is_prime(n_prime: int) -> bool: + """Проверяет, является ли число простым.""" + if n_prime < 2: + return False + if n_prime == 2: + return True + if n_prime % 2 == 0: + return False + i_prime = 3 + while i_prime * i_prime <= n_prime: + if n_prime % i_prime == 0: + return False + i_prime += 2 + return True + + +# ## Слияние. +# +# - Теперь научимся объединять отсортированные коллекции в одну. +# - Это важный шаг в алгоритмах сортировки и при обработке данных. +# - Напишите функцию merge, которая принимает два отсортированных по возрастанию кортежа целых чисел, а возвращает один из всех переданных чисел. +# - Примечание +# - Ваше решение должно содержать только функции. +# - В решении не должно быть вызовов требуемых функций. + +# + +T = TypeVar("T", int, float, str) + + +def merge(tuple_1: tuple[T, ...], tuple_2: tuple[T, ...]) -> tuple[T, ...]: + """Объединяет два отсортированных кортежа в один отсортированный.""" + result_mer = [] + i_mer, j_mer = 0, 0 + while i_mer < len(tuple_1) and j_mer < len(tuple_2): + if tuple_1[i_mer] <= tuple_2[j_mer]: + result_mer.append(tuple_1[i_mer]) + i_mer += 1 + else: + result_mer.append(tuple_2[j_mer]) + j_mer += 1 + while i_mer < len(tuple_1): + result_mer.append(tuple_1[i_mer]) + i_mer += 1 + while j_mer < len(tuple_2): + result_mer.append(tuple_2[j_mer]) + j_mer += 1 + return tuple(result_mer) + + +# - + +# ## Обмен содержимым. +# +# - Иногда нужно поменять содержимое двух списков местами так, чтобы ссылки на них остались прежними. +# - То есть объекты остаются теми же, а данные — полностью меняются. +# - Создайте функцию swap(a, b), которая принимает два списка и меняет их содержимое местами. +# - Результат должен быть виден во всех переменных, которые ссылаются на эти списки. +# - Примечание +# - В решении не должно быть вызовов требуемых функций. + +# + +_T = TypeVar("_T") + + +def swap(a_swap: list[_T], b_swap: list[_T]) -> None: + """Меняет местами содержимое двух списков.""" + temp = a_swap[:] + a_swap[:] = b_swap[:] + b_swap[:] = temp + + +# - + +# ## Цезарю — Цезарево. +# +# - В Древнем Риме использовалась особая система счисления. Чтобы попрактиковаться в сложении римских чисел, напишите функцию roman, которая принимает два натуральных числа a и b, а возвращает строку вида: РИМСКОЕ_А + РИМСКОЕ_B = РИМСКАЯ_СУММА +# - Примечание +# - В решении не должно быть вызовов требуемых функций. + + +# + +def to_roman(n_roman: int) -> str: + """Конвертирует целое число в римскую запись.""" + val_roman = [ + (1000, "M"), + (900, "CM"), + (500, "D"), + (400, "CD"), + (100, "C"), + (90, "XC"), + (50, "L"), + (40, "XL"), + (10, "X"), + (9, "IX"), + (5, "V"), + (4, "IV"), + (1, "I"), + ] + result_roman = "" + for num_roman, symbol_roman in val_roman: + while n_roman >= num_roman: + result_roman += symbol_roman + n_roman -= num_roman + return result_roman + + +def roman(a_rom: int, b_rom: int) -> str: + """Возвращает строку с римскими числами и их суммой.""" + roman_a = to_roman(a_rom) + roman_b = to_roman(b_rom) + roman_sum = to_roman(a_rom + b_rom) + return f"{roman_a} + {roman_b} = {roman_sum}" diff --git a/python/yandex/list_comprehensions_3_3.ipynb b/python/yandex/list_comprehensions_3_3.ipynb new file mode 100644 index 00000000..90699a3a --- /dev/null +++ b/python/yandex/list_comprehensions_3_3.ipynb @@ -0,0 +1,589 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "id": "126f586f", + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"Списочные выражения. Модель памяти для типов языка Python.\n", + "\n", + "В этом параграфе вы научитесь компактно создавать и фильтровать\n", + "списки с помощью списочных выражений, узнаете, как работают\n", + "генераторы и в чём их преимущество по сравнению со списками.\n", + "А ещё разберётесь, как Python хранит переменные в памяти,\n", + "чем изменяемые объекты отличаются от неизменяемых — и почему\n", + "это важно при написании кода.\n", + "\"\"\"" + ] + }, + { + "cell_type": "markdown", + "id": "4d793e85", + "metadata": {}, + "source": [ + "## Список квадратов.\n", + "\n", + "- Это первая задача в блоке, и она поможет освоиться с базовой конструкцией списочных выражений в Python. Такие выражения позволяют лаконично и эффективно создавать списки по заданному правилу.\n", + "- Вашему решению будут даны две переменные a и b.\n", + "- Напишите одно списочное выражение, которое формирует список квадратов всех целых чисел от [a,b] включительно.\n", + "- Примечание\n", + "- В решении не должно быть ничего, кроме списочного выражения." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d68a8c99", + "metadata": {}, + "outputs": [], + "source": [ + "def list_of_squares(a_square: int, b_square: int) -> list[int]:\n", + " \"\"\"list_of_squares.\"\"\"\n", + " return [x_square**2 for x_square in range(a_square, b_square + 1)]" + ] + }, + { + "cell_type": "markdown", + "id": "8b86a953", + "metadata": {}, + "source": [ + "## Список квадратов 2.\n", + "\n", + "- В этой задаче мы продолжаем работать со списочными выражениями, но теперь усложним логику: список квадратов должен строиться вне зависимости от порядка значений a и b. Если a < b, счёт идёт вперёд. Если a > b, счёт идёт назад. Результат — один список, содержащий квадраты всех чисел от a до b включительно, в соответствующем порядке. Вашему решению даны переменные a и b. Сформируйте список квадратов всех целых чисел от a до b включительно — в прямом или обратном порядке, в зависимости от того, какое значение больше.\n", + "- Примечание\n", + "- В решении не должно быть ничего, кроме списочного выражения." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "737cdb67", + "metadata": {}, + "outputs": [], + "source": [ + "def list_of_squares_2(a_sqr: int, b_sqr: int) -> list[int]:\n", + " \"\"\"list_of_squares_2.\"\"\"\n", + " return [\n", + " x_sqr**2\n", + " for x_sqr in (\n", + " range(a_sqr, b_sqr + 1) if a_sqr <= b_sqr else range(a_sqr, b_sqr - 1, -1)\n", + " )\n", + " ]" + ] + }, + { + "cell_type": "markdown", + "id": "7e167de9", + "metadata": {}, + "source": [ + "## Основы фильтрации.\n", + "\n", + "- Переходим от построения списков к фильтрации значений. Теперь ваша цель — выбрать из диапазона только те числа, которые делятся на заданное значение без остатка. Вашему решению даны три переменные: a, b и d. Сформируйте список всех чисел, кратных d, лежащих в диапазоне от a до b включительно. С помощью одного списочного выражения постройте список всех чисел от a до b, которые делятся на d без остатка.\n", + "- Примечание\n", + "- В решении не должно быть ничего, кроме списочного выражения." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "61069f74", + "metadata": {}, + "outputs": [], + "source": [ + "def filtering_basics(a_bas: int, b_bas: int, d_bas: int) -> list[int]:\n", + " \"\"\"filtering_basics.\"\"\"\n", + " return [\n", + " i\n", + " for i in (\n", + " range(a_bas, b_bas + 1) if a_bas <= b_bas else range(a_bas, b_bas - 1, -1)\n", + " )\n", + " if i % d_bas == 0\n", + " ]" + ] + }, + { + "cell_type": "markdown", + "id": "65ccff54", + "metadata": {}, + "source": [ + "## Множество нечетных чисел.\n", + "\n", + "- Продолжаем практиковаться с генераторами множеств и фильтрацией данных. Вашему решению предоставлен список numbers, содержащий натуральные числа. Нужно выбрать из него только нечётные числа — и сохранить их в множестве, чтобы исключить повторы. Сформируйте одно выражение, которое создаёт множество всех нечётных чисел из списка numbers.\n", + "- Примечание\n", + "- В решении не должно быть ничего, кроме выражения." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c7427401", + "metadata": {}, + "outputs": [], + "source": [ + "def odd(numb_odd: list[int]) -> set[int]:\n", + " \"\"\"odd.\"\"\"\n", + " return {i for i in numb_odd if i % 2 == 1}" + ] + }, + { + "cell_type": "markdown", + "id": "1d48ad14", + "metadata": {}, + "source": [ + "## Множество всех полных квадратов.\n", + "\n", + "- Полный квадрат — это натуральное число, являющееся квадратом другого натурального числа.\n", + "- Например:\n", + "- 4 — это 2 ** 2,\n", + "- 49 — это 7 ** 2.\n", + "- Ваша задача — из заданного списка numbers отобрать только полные квадраты и собрать их в множество (без повторов).\n", + "- Вашему решению будет предоставлен список numbers, содержащий натуральные числа. Сформируйте одно выражение, которое создаёт множество всех полных квадратов из списка.\n", + "- Примечание\n", + "- В решении не должно быть ничего, кроме выражения." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8765f58f", + "metadata": {}, + "outputs": [], + "source": [ + "def set_all_squares(numbers_sqr: list[int]) -> set[int]:\n", + " \"\"\"set_all_squares.\"\"\"\n", + " return {numb for numb in numbers_sqr if numb == int(numb**0.5) ** 2}" + ] + }, + { + "cell_type": "markdown", + "id": "bd84228b", + "metadata": {}, + "source": [ + "## Длины всех слов.\n", + "\n", + "- Теперь переходим к следующему шагу: учимся извлекать информацию из строк.\n", + "- В этой задаче нужно посчитать длину каждого слова в строке.\n", + "- Вашему решению будет предоставлена строка sentence, в которой слова разделены пробелами.\n", + "- Напишите списочное выражение, которое создаёт список длин этих слов.\n", + "- Примечание\n", + "- В решении не должно быть ничего, кроме списочного выражения." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8ee1958d", + "metadata": {}, + "outputs": [], + "source": [ + "def lengths_all_words(sentence: str) -> list[int]:\n", + " \"\"\"lengths_all_words.\"\"\"\n", + " return [len(word) for word in sentence.split()]" + ] + }, + { + "cell_type": "markdown", + "id": "fdd0dca2", + "metadata": {}, + "source": [ + "## Цифровая выжимка.\n", + "\n", + "- На этот раз вам предстоит найти все цифры в строке.\n", + "- Вашему решению будет предоставлена переменная text — строка, которая может содержать любые символы.\n", + "- Нужно извлечь все цифры и собрать их в одну строку, сохранив порядок появления.\n", + "- Примечание\n", + "- В решении не должно быть ничего, кроме списочного выражения." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9f40c0c5", + "metadata": {}, + "outputs": [], + "source": [ + "def digital_extract(text_dig: str) -> str:\n", + " \"\"\"digital_extract.\"\"\"\n", + " return \"\".join(let for let in text_dig if let.isdigit())" + ] + }, + { + "cell_type": "markdown", + "id": "88517525", + "metadata": {}, + "source": [ + "## Аббревиатура.\n", + "\n", + "- На этот раз нужно сократить длинную фразу до аббревиатуры, как делают в названиях компаний, университетов или государств.\n", + "- Вам дана строка string, содержащая слова, разделённые пробелами.\n", + "- Нужно составить строку из первых букв всех слов, в верхнем регистре, без пробелов.\n", + "- Примечание\n", + "- В решении не должно быть ничего, кроме выражения." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "fe69d8ee", + "metadata": {}, + "outputs": [], + "source": [ + "def abbreviation(string_abb: str) -> str:\n", + " \"\"\"abbreviation.\"\"\"\n", + " return \"\".join([i[0].upper() for i in string_abb.split()])" + ] + }, + { + "cell_type": "markdown", + "id": "be65629f", + "metadata": {}, + "source": [ + "## Преобразование в строку.\n", + "\n", + "- Допустим, у вас есть список натуральных чисел, возможно с повторениями.\n", + "- Ваша задача — превратить его в строку, в которой будут только уникальные числа, отсортированные по возрастанию, разделённые через дефис с пробелами (' - ').\n", + "- Вашему решению предоставлен список натуральных чисел numbers.\n", + "- Сформируйте строку по описанным правилам.\n", + "- Примечание\n", + "- В решении не должно быть ничего, кроме выражения." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "37effd08", + "metadata": {}, + "outputs": [], + "source": [ + "def convert_to_string(numb_convert: list[int]) -> str:\n", + " \"\"\"convert_to_string.\"\"\"\n", + " return \" - \".join(map(str, sorted(set(numb_convert))))" + ] + }, + { + "cell_type": "markdown", + "id": "33bc1bd3", + "metadata": {}, + "source": [ + "## Огласите список.\n", + "\n", + "- Иногда при анализе текста важно уметь выделять слова с определёнными характеристиками — например, по количеству гласных. В этой задаче мы потренируемся именно в такой фильтрации: вы будете искать слова, в которых не менее трёх гласных, независимо от языка или регистра.\n", + "- Вашему решению предоставлена строка words.\n", + "- Напишите выражение, которое создаёт список слов, в которых не менее трёх гласных букв (в любом регистре).\n", + "- Примечание\n", + "- В решении не должно быть ничего, кроме выражения.\n", + "- В русском языке гласными являются: аяуюоёэеиы\n", + "- В английском: aeiouy" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "18c61865", + "metadata": {}, + "outputs": [], + "source": [ + "def announce_list(words_list: str) -> list[str]:\n", + " \"\"\"announce_list.\"\"\"\n", + " return [\n", + " word_list\n", + " for word_list in words_list.split()\n", + " if sum(1 for letter in word_list.lower() if letter in \"аеёиоуыэюяaeiouy\") >= 3\n", + " ]" + ] + }, + { + "cell_type": "markdown", + "id": "4d35ddd5", + "metadata": {}, + "source": [ + "## Выявление уникальности.\n", + "\n", + "- Если хочется — сделайте небольшой перерыв, а потом возвращайтесь — дальше будет не менее интересно.\n", + "- Когда вы работаете с данными, важно уметь выделять уникальные значения — те, что появляются ровно один раз.\n", + "- Вашему решению предоставлен список numbers.\n", + "- Напишите выражение, которое создаёт множество всех чисел, встречающихся в списке ровно один раз.\n", + "- Примечание\n", + "- В решении не должно быть ничего, кроме выражения." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f75dcbf1", + "metadata": {}, + "outputs": [], + "source": [ + "def identifying_uniqueness(numbers_ind: list[int]) -> set[int]:\n", + " \"\"\"identifying_uniqueness.\"\"\"\n", + " return {i for i in numbers_ind if numbers_ind.count(i) == 1}" + ] + }, + { + "cell_type": "markdown", + "id": "47c1d1e7", + "metadata": {}, + "source": [ + "## Максимальное произведение.\n", + "\n", + "- Вашему решению предоставлено множество numbers.\n", + "- Напишите одно выражение, которое находит максимальное произведение двух различных чисел из этого множества." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c08a2dd0", + "metadata": {}, + "outputs": [], + "source": [ + "def maximum_product(numb_max: list[int]) -> int:\n", + " \"\"\"maximum_product.\"\"\"\n", + " return max(\n", + " first * second for first in numb_max for second in numb_max if first != second\n", + " )" + ] + }, + { + "cell_type": "markdown", + "id": "510626a0", + "metadata": {}, + "source": [ + "## Словарный минимум.\n", + "\n", + "- Вашему решению предоставлен словарь data, в котором ключами являются слова, а значениями списки чисел.\n", + "- Напишите одно выражение, которое находит ключ с наименьшей суммой значений.\n", + "- Если таких несколько — выберите лексикографически наименьший (т.е. тот, что раньше по алфавиту)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ce9f29b9", + "metadata": {}, + "outputs": [], + "source": [ + "def minimum_vocabulary(data_voc: dict[str, list[int]]) -> str:\n", + " \"\"\"minimum_vocabulary.\"\"\"\n", + " return min(\n", + " (sum(numbers_voc), word_voc) for word_voc, numbers_voc in data_voc.items()\n", + " )[1]" + ] + }, + { + "cell_type": "markdown", + "id": "d05bdfc0", + "metadata": {}, + "source": [ + "## Поиск ошибок.\n", + "\n", + "- Иногда в данных встречаются ошибки — например, повторы там, где их быть не должно.\n", + "- Научимся быстро находить такие случаи при помощи словарей и выражений.\n", + "- Вашему решению предоставлен словарь data, в котором ключами являются слова, а значениями списки чисел.\n", + "- Напишите выражение для создания множества ключей, среди значений которых есть повторы." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "55c018ab", + "metadata": {}, + "outputs": [], + "source": [ + "def finding_errors(data_err: dict[str, list[int]]) -> set[str]:\n", + " \"\"\"finding_errors.\"\"\"\n", + " return {\n", + " word_err\n", + " for word_err, numbers_err in data_err.items()\n", + " if len(numbers_err) != len(set(numbers_err))\n", + " }" + ] + }, + { + "cell_type": "markdown", + "id": "f679e6a1", + "metadata": {}, + "source": [ + "## Буквенная статистика.\n", + "\n", + "- В этой задаче вы потренируетесь извлекать статистику из текстовых данных. А именно — подсчитывать частоту употребления каждой буквы в строке. Это навык, который пригодится во многих прикладных задачах, от анализа документов до построения индексов поиска.\n", + "- Вашему решению будет предоставлена строка text.\n", + "- Напишите выражение для генерации словаря, который содержит информацию о частоте употребления букв в заданной строке.\n", + "- При анализе не учитывайте регистр, а ключами словаря сделайте использованные в строке буквы в нижнем регистре." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d3a397b7", + "metadata": {}, + "outputs": [], + "source": [ + "def letter_statistics(text_stat: str) -> dict[str, int]:\n", + " \"\"\"letter_statistics.\"\"\"\n", + " return {\n", + " letter: text_stat.lower().count(letter)\n", + " for letter in set(text_stat.lower())\n", + " if letter.isalpha()\n", + " }" + ] + }, + { + "cell_type": "markdown", + "id": "2dc93875", + "metadata": {}, + "source": [ + "## RLE наоборот.\n", + "\n", + "- Формат RLE (Run-Length Encoding) — это способ сжатия данных, при котором последовательности одинаковых символов заменяются на пару: символ + количество повторений. В этой задаче вам нужно сделать обратное преобразование: по списку пар символов и количества их повторений восстановить исходную строку.\n", + "- Вашему решению будет предоставлен список кортежей rle с символами и количеством их повторений.\n", + "- Напишите выражение для генерации строки, из которой был получен данный список.\n", + "- Примечание\n", + "- В решении не должно быть ничего, кроме выражения." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d73724e3", + "metadata": {}, + "outputs": [], + "source": [ + "def vice_versa(rle: list[tuple[str, int]]) -> str:\n", + " \"\"\"vice_versa.\"\"\"\n", + " return \"\".join(char * count for char, count in rle)" + ] + }, + { + "cell_type": "markdown", + "id": "82a17d0c", + "metadata": {}, + "source": [ + "## Таблица умножения 2.0.\n", + "\n", + "- На этом этапе мы потренируемся в вложенных списочных выражениях и сгенерируем настоящую таблицу умножения.\n", + "- Вашему решению будет предоставлена единственная переменная n — необходимый размер таблицы. Постройте список из n списков, каждый из которых содержит произведения чисел от 1 до n на текущее значение строки.\n", + "- Примечание\n", + "- В решении не должно быть ничего, кроме списочного выражения." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "176a6d6d", + "metadata": {}, + "outputs": [], + "source": [ + "def multiplication_table_2(n_mul: int) -> list[list[int]]:\n", + " \"\"\"multiplication_table_2.\"\"\"\n", + " return [\n", + " [i_mul * j_mil for j_mil in range(1, n_mul + 1)]\n", + " for i_mul in range(1, n_mul + 1)\n", + " ]" + ] + }, + { + "cell_type": "markdown", + "id": "b7252022", + "metadata": {}, + "source": [ + "Делители.\n", + "\n", + "- В этой задаче мы потренируем вложенные списочные выражения и создание словаря с вычисляемыми значениями.\n", + "- Нужно будет для каждого числа найти список всех его делителей — от 1 до самого числа.\n", + "- Вашему решению будет предоставлено множество numbers.\n", + "- Напишите выражение для генерации словаря содержащего информацию о делителях каждого из заданных чисел.\n", + "- Примечание\n", + "- В решении не должно быть ничего, кроме выражения." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "dfe5f4af", + "metadata": {}, + "outputs": [], + "source": [ + "def dividers(numb_div: list[int]) -> dict[int, list[int]]:\n", + " \"\"\"dividers.\"\"\"\n", + " return {\n", + " num_div: [i_div for i_div in range(1, num_div + 1) if num_div % i_div == 0]\n", + " for num_div in numb_div\n", + " }" + ] + }, + { + "cell_type": "markdown", + "id": "84e275ce", + "metadata": {}, + "source": [ + "## Простое множество.\n", + "\n", + "- А сейчас — проверим, умеете ли вы находить простые числа с помощью выражений на Python.\n", + "- В этой задаче предстоит применить вложенное выражение с условием, чтобы отфильтровать все простые числа из множества.\n", + "- Вашему решению будет предоставлено множество numbers.\n", + "- Продумайте выражение для генерации множества содержащего все простые числа из заданных.\n", + "- Примечание\n", + "- В решении не должно быть ничего, кроме выражения." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "77858bfd", + "metadata": {}, + "outputs": [], + "source": [ + "def simple_set(numb_simple: list[int]) -> set[int]:\n", + " \"\"\"simple_set.\"\"\"\n", + " return {\n", + " num\n", + " for num in numb_simple\n", + " if num > 1 and all(num % i != 0 for i in range(2, int(num**0.5) + 1))\n", + " }" + ] + }, + { + "cell_type": "markdown", + "id": "4e562808", + "metadata": {}, + "source": [ + "## Обобщение.\n", + "\n", + "- В этом задании вы проанализируете текст и определите пары слов, которые имеют не менее трёх общих букв. Важно: порядок слов в паре не имеет значения, а повторяющиеся буквы не считаются несколько раз.\n", + "- Вашему решению будет предоставлена переменная text.\n", + "- Напишите выражение для генерации множества, содержащего все кортежи пар слов, имеющих более двух общих букв без учёта повторений.\n", + "- Пары с разным порядком слов следует считать одной и той же и включать в результат только в одном (лексикографически упорядоченном) виде.\n", + "- Примечание\n", + "- В решении не должно быть ничего, кроме выражения.\n", + "- Все слова в тексте различны." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "eab69541", + "metadata": {}, + "outputs": [], + "source": [ + "def generalization(text_gen: str) -> set[tuple[str, str]]:\n", + " \"\"\"generalization.\"\"\"\n", + " return {\n", + " (word_1, word_2)\n", + " for word_1 in text_gen.split()\n", + " for word_2 in text_gen.split()\n", + " if word_1 < word_2 and len(set(word_1) & set(word_2)) > 2\n", + " }" + ] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/python/yandex/list_comprehensions_3_3.py b/python/yandex/list_comprehensions_3_3.py new file mode 100644 index 00000000..e47e0d5a --- /dev/null +++ b/python/yandex/list_comprehensions_3_3.py @@ -0,0 +1,326 @@ +"""Списочные выражения. Модель памяти для типов языка Python. + +В этом параграфе вы научитесь компактно создавать и фильтровать списки с помощью списочных +выражений, узнаете, как работают генераторы и в чём их преимущество по сравнению со +списками. А ещё разберётесь, как Python хранит переменные в памяти, чем изменяемые объекты +отличаются от неизменяемых — и почему это важно при написании кода. +""" + +# ## Список квадратов. +# +# - Это первая задача в блоке, и она поможет освоиться с базовой конструкцией списочных выражений в Python. Такие выражения позволяют лаконично и эффективно создавать списки по заданному правилу. +# - Вашему решению будут даны две переменные a и b. +# - Напишите одно списочное выражение, которое формирует список квадратов всех целых чисел от [a,b] включительно. +# - Примечание +# - В решении не должно быть ничего, кроме списочного выражения. + + +def list_of_squares(a_square: int, b_square: int) -> list[int]: + """list_of_squares.""" + return [x_square**2 for x_square in range(a_square, b_square + 1)] + + +# ## Список квадратов 2. +# +# - В этой задаче мы продолжаем работать со списочными выражениями, но теперь усложним логику: список квадратов должен строиться вне зависимости от порядка значений a и b. Если a < b, счёт идёт вперёд. Если a > b, счёт идёт назад. Результат — один список, содержащий квадраты всех чисел от a до b включительно, в соответствующем порядке. Вашему решению даны переменные a и b. Сформируйте список квадратов всех целых чисел от a до b включительно — в прямом или обратном порядке, в зависимости от того, какое значение больше. +# - Примечание +# - В решении не должно быть ничего, кроме списочного выражения. + + +def list_of_squares_2(a_sqr: int, b_sqr: int) -> list[int]: + """list_of_squares_2.""" + return [ + x_sqr**2 + for x_sqr in ( + range(a_sqr, b_sqr + 1) if a_sqr <= b_sqr else range(a_sqr, b_sqr - 1, -1) + ) + ] + + +# ## Основы фильтрации. +# +# - Переходим от построения списков к фильтрации значений. Теперь ваша цель — выбрать из диапазона только те числа, которые делятся на заданное значение без остатка. Вашему решению даны три переменные: a, b и d. Сформируйте список всех чисел, кратных d, лежащих в диапазоне от a до b включительно. С помощью одного списочного выражения постройте список всех чисел от a до b, которые делятся на d без остатка. +# - Примечание +# - В решении не должно быть ничего, кроме списочного выражения. + + +def filtering_basics(a_bas: int, b_bas: int, d_bas: int) -> list[int]: + """filtering_basics.""" + return [ + i + for i in ( + range(a_bas, b_bas + 1) if a_bas <= b_bas else range(a_bas, b_bas - 1, -1) + ) + if i % d_bas == 0 + ] + + +# ## Множество нечетных чисел. +# +# - Продолжаем практиковаться с генераторами множеств и фильтрацией данных. Вашему решению предоставлен список numbers, содержащий натуральные числа. Нужно выбрать из него только нечётные числа — и сохранить их в множестве, чтобы исключить повторы. Сформируйте одно выражение, которое создаёт множество всех нечётных чисел из списка numbers. +# - Примечание +# - В решении не должно быть ничего, кроме выражения. + + +def odd(numb_odd: list[int]) -> set[int]: + """odd.""" + return {i for i in numb_odd if i % 2 == 1} + + +# ## Множество всех полных квадратов. +# +# - Полный квадрат — это натуральное число, являющееся квадратом другого натурального числа. +# - Например: +# - 4 — это 2 ** 2, +# - 49 — это 7 ** 2. +# - Ваша задача — из заданного списка numbers отобрать только полные квадраты и собрать их в множество (без повторов). +# - Вашему решению будет предоставлен список numbers, содержащий натуральные числа. Сформируйте одно выражение, которое создаёт множество всех полных квадратов из списка. +# - Примечание +# - В решении не должно быть ничего, кроме выражения. + + +def set_all_squares(numbers_sqr: list[int]) -> set[int]: + """set_all_squares.""" + return {numb for numb in numbers_sqr if numb == int(numb**0.5) ** 2} + + +# ## Длины всех слов. +# +# - Теперь переходим к следующему шагу: учимся извлекать информацию из строк. +# - В этой задаче нужно посчитать длину каждого слова в строке. +# - Вашему решению будет предоставлена строка sentence, в которой слова разделены пробелами. +# - Напишите списочное выражение, которое создаёт список длин этих слов. +# - Примечание +# - В решении не должно быть ничего, кроме списочного выражения. + + +def lengths_all_words(sentence: str) -> list[int]: + """lengths_all_words.""" + return [len(word) for word in sentence.split()] + + +# ## Цифровая выжимка. +# +# - На этот раз вам предстоит найти все цифры в строке. +# - Вашему решению будет предоставлена переменная text — строка, которая может содержать любые символы. +# - Нужно извлечь все цифры и собрать их в одну строку, сохранив порядок появления. +# - Примечание +# - В решении не должно быть ничего, кроме списочного выражения. + + +def digital_extract(text_dig: str) -> str: + """digital_extract.""" + return "".join(let for let in text_dig if let.isdigit()) + + +# ## Аббревиатура. +# +# - На этот раз нужно сократить длинную фразу до аббревиатуры, как делают в названиях компаний, университетов или государств. +# - Вам дана строка string, содержащая слова, разделённые пробелами. +# - Нужно составить строку из первых букв всех слов, в верхнем регистре, без пробелов. +# - Примечание +# - В решении не должно быть ничего, кроме выражения. + + +def abbreviation(string_abb: str) -> str: + """abbreviation.""" + return "".join([i[0].upper() for i in string_abb.split()]) + + +# ## Преобразование в строку. +# +# - Допустим, у вас есть список натуральных чисел, возможно с повторениями. +# - Ваша задача — превратить его в строку, в которой будут только уникальные числа, отсортированные по возрастанию, разделённые через дефис с пробелами (' - '). +# - Вашему решению предоставлен список натуральных чисел numbers. +# - Сформируйте строку по описанным правилам. +# - Примечание +# - В решении не должно быть ничего, кроме выражения. + + +def convert_to_string(numb_convert: list[int]) -> str: + """convert_to_string.""" + return " - ".join(map(str, sorted(set(numb_convert)))) + + +# ## Огласите список. +# +# - Иногда при анализе текста важно уметь выделять слова с определёнными характеристиками — например, по количеству гласных. В этой задаче мы потренируемся именно в такой фильтрации: вы будете искать слова, в которых не менее трёх гласных, независимо от языка или регистра. +# - Вашему решению предоставлена строка words. +# - Напишите выражение, которое создаёт список слов, в которых не менее трёх гласных букв (в любом регистре). +# - Примечание +# - В решении не должно быть ничего, кроме выражения. +# - В русском языке гласными являются: аяуюоёэеиы +# - В английском: aeiouy + + +def announce_list(words_list: str) -> list[str]: + """announce_list.""" + return [ + word_list + for word_list in words_list.split() + if sum(1 for letter in word_list.lower() if letter in "аеёиоуыэюяaeiouy") >= 3 + ] + + +# ## Выявление уникальности. +# +# - Если хочется — сделайте небольшой перерыв, а потом возвращайтесь — дальше будет не менее интересно. +# - Когда вы работаете с данными, важно уметь выделять уникальные значения — те, что появляются ровно один раз. +# - Вашему решению предоставлен список numbers. +# - Напишите выражение, которое создаёт множество всех чисел, встречающихся в списке ровно один раз. +# - Примечание +# - В решении не должно быть ничего, кроме выражения. + + +def identifying_uniqueness(numbers_ind: list[int]) -> set[int]: + """identifying_uniqueness.""" + return {i for i in numbers_ind if numbers_ind.count(i) == 1} + + +# ## Максимальное произведение. +# +# - Вашему решению предоставлено множество numbers. +# - Напишите одно выражение, которое находит максимальное произведение двух различных чисел из этого множества. + + +def maximum_product(numb_max: list[int]) -> int: + """maximum_product.""" + return max( + first * second for first in numb_max for second in numb_max if first != second + ) + + +# ## Словарный минимум. +# +# - Вашему решению предоставлен словарь data, в котором ключами являются слова, а значениями списки чисел. +# - Напишите одно выражение, которое находит ключ с наименьшей суммой значений. +# - Если таких несколько — выберите лексикографически наименьший (т.е. тот, что раньше по алфавиту). + + +def minimum_vocabulary(data_voc: dict[str, list[int]]) -> str: + """minimum_vocabulary.""" + return min( + (sum(numbers_voc), word_voc) for word_voc, numbers_voc in data_voc.items() + )[1] + + +# ## Поиск ошибок. +# +# - Иногда в данных встречаются ошибки — например, повторы там, где их быть не должно. +# - Научимся быстро находить такие случаи при помощи словарей и выражений. +# - Вашему решению предоставлен словарь data, в котором ключами являются слова, а значениями списки чисел. +# - Напишите выражение для создания множества ключей, среди значений которых есть повторы. + + +def finding_errors(data_err: dict[str, list[int]]) -> set[str]: + """finding_errors.""" + return { + word_err + for word_err, numbers_err in data_err.items() + if len(numbers_err) != len(set(numbers_err)) + } + + +# ## Буквенная статистика. +# +# - В этой задаче вы потренируетесь извлекать статистику из текстовых данных. А именно — подсчитывать частоту употребления каждой буквы в строке. Это навык, который пригодится во многих прикладных задачах, от анализа документов до построения индексов поиска. +# - Вашему решению будет предоставлена строка text. +# - Напишите выражение для генерации словаря, который содержит информацию о частоте употребления букв в заданной строке. +# - При анализе не учитывайте регистр, а ключами словаря сделайте использованные в строке буквы в нижнем регистре. + + +def letter_statistics(text_stat: str) -> dict[str, int]: + """letter_statistics.""" + return { + letter: text_stat.lower().count(letter) + for letter in set(text_stat.lower()) + if letter.isalpha() + } + + +# ## RLE наоборот. +# +# - Формат RLE (Run-Length Encoding) — это способ сжатия данных, при котором последовательности одинаковых символов заменяются на пару: символ + количество повторений. В этой задаче вам нужно сделать обратное преобразование: по списку пар символов и количества их повторений восстановить исходную строку. +# - Вашему решению будет предоставлен список кортежей rle с символами и количеством их повторений. +# - Напишите выражение для генерации строки, из которой был получен данный список. +# - Примечание +# - В решении не должно быть ничего, кроме выражения. + + +def vice_versa(rle: list[tuple[str, int]]) -> str: + """vice_versa.""" + return "".join(char * count for char, count in rle) + + +# ## Таблица умножения 2.0. +# +# - На этом этапе мы потренируемся в вложенных списочных выражениях и сгенерируем настоящую таблицу умножения. +# - Вашему решению будет предоставлена единственная переменная n — необходимый размер таблицы. Постройте список из n списков, каждый из которых содержит произведения чисел от 1 до n на текущее значение строки. +# - Примечание +# - В решении не должно быть ничего, кроме списочного выражения. + + +def multiplication_table_2(n_mul: int) -> list[list[int]]: + """multiplication_table_2.""" + return [ + [i_mul * j_mil for j_mil in range(1, n_mul + 1)] + for i_mul in range(1, n_mul + 1) + ] + + +# Делители. +# +# - В этой задаче мы потренируем вложенные списочные выражения и создание словаря с вычисляемыми значениями. +# - Нужно будет для каждого числа найти список всех его делителей — от 1 до самого числа. +# - Вашему решению будет предоставлено множество numbers. +# - Напишите выражение для генерации словаря содержащего информацию о делителях каждого из заданных чисел. +# - Примечание +# - В решении не должно быть ничего, кроме выражения. + + +def dividers(numb_div: list[int]) -> dict[int, list[int]]: + """dividers.""" + return { + num_div: [i_div for i_div in range(1, num_div + 1) if num_div % i_div == 0] + for num_div in numb_div + } + + +# ## Простое множество. +# +# - А сейчас — проверим, умеете ли вы находить простые числа с помощью выражений на Python. +# - В этой задаче предстоит применить вложенное выражение с условием, чтобы отфильтровать все простые числа из множества. +# - Вашему решению будет предоставлено множество numbers. +# - Продумайте выражение для генерации множества содержащего все простые числа из заданных. +# - Примечание +# - В решении не должно быть ничего, кроме выражения. + + +def simple_set(numb_simple: list[int]) -> set[int]: + """simple_set.""" + return { + num + for num in numb_simple + if num > 1 and all(num % i != 0 for i in range(2, int(num**0.5) + 1)) + } + + +# ## Обобщение. +# +# - В этом задании вы проанализируете текст и определите пары слов, которые имеют не менее трёх общих букв. Важно: порядок слов в паре не имеет значения, а повторяющиеся буквы не считаются несколько раз. +# - Вашему решению будет предоставлена переменная text. +# - Напишите выражение для генерации множества, содержащего все кортежи пар слов, имеющих более двух общих букв без учёта повторений. +# - Пары с разным порядком слов следует считать одной и той же и включать в результат только в одном (лексикографически упорядоченном) виде. +# - Примечание +# - В решении не должно быть ничего, кроме выражения. +# - Все слова в тексте различны. + + +def generalization(text_gen: str) -> set[tuple[str, str]]: + """generalization.""" + return { + (word_1, word_2) + for word_1 in text_gen.split() + for word_2 in text_gen.split() + if word_1 < word_2 and len(set(word_1) & set(word_2)) > 2 + } diff --git a/python/yandex/nested_loops_2_4.ipynb b/python/yandex/nested_loops_2_4.ipynb new file mode 100644 index 00000000..8161dbc1 --- /dev/null +++ b/python/yandex/nested_loops_2_4.ipynb @@ -0,0 +1,1063 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "id": "cc4dc97e", + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"Вложенные циклы.\n", + "\n", + "Узнаем как работают вложенные циклы в Python, и научимся\n", + "управлять выполнением кода с помощью операторов break,\n", + "continue и else. Вы узнаете, как останавливать вложенные\n", + "циклы с помощью флагов и правильно строить логику выхода\n", + "из повторяющихся действий.\n", + "\"\"\"" + ] + }, + { + "cell_type": "markdown", + "id": "531d7c66", + "metadata": {}, + "source": [ + "### Таблица умножения\n", + "\n", + "- Местная фабрика канцелярских товаров заказала у вас программу, которая генерирует таблицы умножения.\n", + "Давайте поддержим локального производителя!\n", + "- Напишите программу, которая по введённому числу n выводит таблицу умножения размера n × n.\n", + "- Формат ввода\n", + "- Вводится одно натуральное число — требуемый размер таблицы.\n", + "- Формат вывода\n", + "- Таблица умножения заданного размера." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "81f2afcf", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1 2 3 4 5 \n", + "2 4 6 8 10 \n", + "3 6 9 12 15 \n", + "4 8 12 16 20 \n", + "5 10 15 20 25 \n" + ] + } + ], + "source": [ + "def multiplication_table() -> None:\n", + " \"\"\"multiplication_table.\"\"\"\n", + " num_table: int = int(input())\n", + " for i in range(1, num_table + 1):\n", + " for j_mult in range(1, num_table + 1):\n", + " print(i * j_mult, end=\" \")\n", + " print()\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " multiplication_table()" + ] + }, + { + "cell_type": "markdown", + "id": "d4a5d840", + "metadata": {}, + "source": [ + "### Не таблица умножения\n", + "- Продолжим поддерживать местный бизнес, используя вложенные циклы.\n", + "- Напишите программу, которая по введённому числу n выводит все произведения чисел от 1 до n в виде отдельных выражений.\n", + "- Порядок важен: сначала фиксируем второе число (внешний цикл), а внутри — перебираем первое.\n", + "- Формат ввода\n", + "- Вводится одно натуральное число — требуемый размер «не таблицы».\n", + "- Формат вывода\n", + "- Не таблица умножения заданного размера." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "44f73e9f", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1 * 1 = 1\n", + "2 * 1 = 2\n", + "3 * 1 = 3\n", + "1 * 2 = 2\n", + "2 * 2 = 4\n", + "3 * 2 = 6\n", + "1 * 3 = 3\n", + "2 * 3 = 6\n", + "3 * 3 = 9\n" + ] + } + ], + "source": [ + "def not_multiplication_table() -> None:\n", + " \"\"\"not_multiplication_table.\"\"\"\n", + " numb_table: int = int(input())\n", + " for i in range(1, numb_table + 1):\n", + " for j_nmt in range(1, numb_table + 1):\n", + " print(f\"{j_nmt} * {i} = {i * j_nmt}\", end=\"\\n\")\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " not_multiplication_table()" + ] + }, + { + "cell_type": "markdown", + "id": "5d3e3858", + "metadata": {}, + "source": [ + "### Новогоднее настроение\n", + "- Великий математик Виталий Евгеньевич каждый Новый год проводит... на работе.\n", + "Коллеги всегда любили и ценили его, поэтому в этом году решили сделать ему сюрприз — украсить кабинет учёного математическими ёлками.\n", + "Конечно, без вашей помощи тут не обойтись.\n", + "Нужно написать программу, которая создаст новогоднюю ёлку из чисел. Уверены, Виталий Евгеньевич будет рад!\n", + "- Напишите программу, которая по введённому числу n строит «математическую ёлку» — пирамидку из чисел.\n", + "- В первой строке одно число, во второй — два, в третьей — три... и так далее, пока не закончатся числа.\n", + "- Формат ввода\n", + "- Вводится одно натуральное число — количество чисел в математической ёлке.\n", + "- Формат вывода\n", + "- Требуемая новогодняя ёлка." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f7bc3bbc", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1 \n", + "2 3 \n", + "4 5 6 \n", + "7 8 9 10 \n", + "11 12 13 14 \n" + ] + } + ], + "source": [ + "def christmas_mood() -> None:\n", + " \"\"\"christmas_mood.\"\"\"\n", + " numb_count: int = int(input())\n", + " numb_string: int = 0\n", + " numb_col: int = 0\n", + " number_one: int = 1\n", + " while number_one <= numb_count:\n", + " numb_string += 1\n", + " numb_col = 1\n", + " while numb_col <= numb_string and number_one <= numb_count:\n", + " print(number_one, end=\" \")\n", + " numb_col += 1\n", + " number_one += 1\n", + " print()\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " christmas_mood()" + ] + }, + { + "cell_type": "markdown", + "id": "39c99df7", + "metadata": {}, + "source": [ + "### Суммарная сумма\n", + "- К вам снова пришли за помощью: нужна программа, которая посчитает сумму всех цифр всех чисел, поданных на вход.\n", + "Вы справитесь — у вас ведь уже есть всё необходимое: циклы и уверенность в своих силах!\n", + "- Формат ввода\n", + "- В первой строке указано число N Во всех последующих N строках написано по одному числу.\n", + "- Формат вывода\n", + "Требуется вывести общую сумму цифр всех введённых чисел (кроме N)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1d80e8ee", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "45\n" + ] + } + ], + "source": [ + "def total_amount() -> None:\n", + " \"\"\"total_amount.\"\"\"\n", + " num_str: int = int(input())\n", + " numbers_total: int = 0\n", + " for _ in range(num_str):\n", + " number_total: int = int(input())\n", + " for j_tot in str(number_total):\n", + " numbers_total += int(j_tot)\n", + " print(numbers_total)\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " total_amount()" + ] + }, + { + "cell_type": "markdown", + "id": "4ca550cc", + "metadata": {}, + "source": [ + "### Зайка — 5\n", + "- В этой задаче вас снова ждёт помощь в семейной поездке.\n", + "В долгой дороге дети начали скучать, и родители развлекают их игрой «Кто первым увидит зверушку за окном».\n", + "- Ваша задача — написать программу, которая помогает считать местности, где была замечена зайка.\n", + "- Формат ввода\n", + "- В первой строке указано натуральное число N — количество выделенных придорожных местностей. В последующих строках записаны слова характеризующие выделенную местность.\n", + "Информация о каждой местности завершается словом «ВСЁ».\n", + "- Формат вывода\n", + "- Количество местностей, в которых есть зайка." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e0bc95b6", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1\n" + ] + } + ], + "source": [ + "def bunny_5() -> None:\n", + " \"\"\"bunny_5.\"\"\"\n", + " numb_place: int = int(input())\n", + " numbers_count: int = 0\n", + " nature: int = 0\n", + " place: str\n", + " for _ in range(numb_place):\n", + " numbers_count += 1\n", + " found_zayka: bool = False\n", + " while (place := input()) != \"ВСЁ\":\n", + " if not found_zayka and place == \"зайка\":\n", + " nature += 1\n", + " found_zayka = True\n", + " print(nature)\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " bunny_5()" + ] + }, + { + "cell_type": "markdown", + "id": "70abeedd", + "metadata": {}, + "source": [ + "### НОД 2.0\n", + "- Недавно к вам обратились из местного НИИ: им часто нужно находить наибольший общий делитель (НОД) нескольких чисел.\n", + "Они знают, что вы с этим справитесь!\n", + "- Формат ввода\n", + "- В первой строке записано одно число N — количество данных. В каждой из последующих N строк записано по одному натуральному числу.\n", + "- Формат вывода\n", + "- Требуется вывести одно натуральное число — НОД всех данных чисел (кроме N).\n", + "- Примечание\n", + "- Самый распространённый способ поиска НОД — Алгоритм Эвклида." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "20cdcbf0", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "6\n" + ] + } + ], + "source": [ + "def greatest_common_divisor_2() -> None:\n", + " \"\"\"greatest_common_divisor_2.\"\"\"\n", + " numbers_div: int = int(input())\n", + " current_gcd: int = int(input())\n", + " for _ in range(numbers_div - 1):\n", + " numb_div: int = int(input())\n", + " a_div: int = current_gcd\n", + " b_div: int = numb_div\n", + " while b_div:\n", + " a_div, b_div = b_div, a_div % b_div\n", + " current_gcd = a_div\n", + " if current_gcd == 1:\n", + " break\n", + " print(current_gcd)\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " greatest_common_divisor_2()" + ] + }, + { + "cell_type": "markdown", + "id": "a61d5eb2", + "metadata": {}, + "source": [ + "### На старт! Внимание! Марш!\n", + "- На велогонках важно всё автоматизировать: особенно старт.\n", + "По правилам квалификации каждый гонщик стартует с задержкой на секунду больше, чем предыдущий.\n", + "Первый гонщик стартует после отсчёта: 3, 2, 1... старт!\n", + "Второй — 4, 3, 2, 1... старт!\n", + "И так далее.\n", + "Пора подключать вложенные циклы!\n", + "- Формат ввода\n", + "- Вводится одно натуральное число — количество участников велогонки.\n", + "- Формат вывода\n", + "- Требуется вывести отсчёт." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3f1416fc", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "До старта 3 секунд(ы)\n", + "До старта 2 секунд(ы)\n", + "До старта 1 секунд(ы)\n", + "Старт 1!!!\n", + "До старта 4 секунд(ы)\n", + "До старта 3 секунд(ы)\n", + "До старта 2 секунд(ы)\n", + "До старта 1 секунд(ы)\n", + "Старт 2!!!\n", + "До старта 5 секунд(ы)\n", + "До старта 4 секунд(ы)\n", + "До старта 3 секунд(ы)\n", + "До старта 2 секунд(ы)\n", + "До старта 1 секунд(ы)\n", + "Старт 3!!!\n" + ] + } + ], + "source": [ + "def start_go() -> None:\n", + " \"\"\"start_go.\"\"\"\n", + " number_participants: int = int(input())\n", + " for i in range(number_participants):\n", + " for j_strt in range(i + 3, 0, -1):\n", + " print(f\"До старта {j_strt} секунд(ы)\")\n", + " print(f\"Старт {i + 1}!!!\")\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " start_go()" + ] + }, + { + "cell_type": "markdown", + "id": "204608b9", + "metadata": {}, + "source": [ + "### Максимальная сумма\n", + "- Там ребята придумали новую игру: каждый называет какое-нибудь число, а тот, чьё число имеет наибольшую сумму цифр, выигрывает.\n", + "Судьёй выбрали бедную воспитательницу, и она попросила вас о помощи... ну как тут откажешь?\n", + "- Формат ввода\n", + "- В первой строке записано число N — количество детей в группе. Далее вводятся имя ребенка и его число (каждое на своей строке).\n", + "- Формат вывода\n", + "- Требуется вывести имя победителя.\n", + "Если два ребенка назвали числа с одинаковой суммой цифр, победителем должен быть признан тот, кто ходил позже." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "81bf7be7", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Боря\n" + ] + } + ], + "source": [ + "def maximum_amount() -> None:\n", + " \"\"\"maximum_amount.\"\"\"\n", + " count_amount: int = int(input())\n", + " max_sum: int = 0\n", + " max_sum_name: str | None = None\n", + "\n", + " for _ in range(count_amount):\n", + " baby_name: str = input()\n", + " baby_numb: int = int(input())\n", + " number_sum: int = sum(int(digit) for digit in str(baby_numb))\n", + "\n", + " if number_sum >= max_sum:\n", + " max_sum = number_sum\n", + " max_sum_name = baby_name\n", + " print(max_sum_name)\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " maximum_amount()" + ] + }, + { + "cell_type": "markdown", + "id": "54dfb03e", + "metadata": {}, + "source": [ + "### Большое число\n", + "- Дети в детском саду снова придумали игру: каждый называет число, составленное из тех цифр, которые он знает.\n", + "А потом они собирают общее число, выбирая из каждого названого числа самую большую цифру.\n", + "- Формат ввода\n", + "- В первой строке указано число N — количество детей в группе. В каждой из последующих N строк записано число.\n", + "- Формат вывода\n", + "- Одно большое число." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8c8355e9", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "34\n" + ] + } + ], + "source": [ + "def large_number() -> None:\n", + " \"\"\"large_number.\"\"\"\n", + " count_big_sum: int = int(input())\n", + " number_max_sum: str = \"\"\n", + "\n", + " for _ in range(count_big_sum):\n", + " number_big: int = int(input())\n", + " numb_sum: int = max(int(digit) for digit in str(number_big))\n", + " number_max_sum += str(numb_sum)\n", + " print(number_max_sum)\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " large_number()" + ] + }, + { + "cell_type": "markdown", + "id": "1874bdab", + "metadata": {}, + "source": [ + "### Мы делили апельсин\n", + "- Аня, Боря и Вова решили съесть апельсин. Но просто так — неинтересно!\n", + "Они хотят узнать все возможные способы, как можно его разделить между собой по справедливости.\n", + "- Примечание\n", + "- Каждому ребёнку должна достаться хотя бы одна долька апельсина.\n", + "Ни одной дольки не должно остаться.\n", + "Выводить варианты в порядке увеличения количества долек у Ани, затем Бори и затем уже Вовы.\n", + "- Формат ввода\n", + "- В единственной строке записано количество доступных долек апельсина.\n", + "- Формат вывода\n", + "- Таблица вариантов распределения долек апельсина." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "98670c9e", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "А Б В\n", + "1 1 3\n", + "1 2 2\n", + "1 3 1\n", + "2 1 2\n", + "2 2 1\n", + "3 1 1\n" + ] + } + ], + "source": [ + "def we_shared_orange() -> None:\n", + " \"\"\"we_shared_orange.\"\"\"\n", + " orange_slices: int = int(input())\n", + " print(\"А\", \"Б\", \"В\")\n", + " for anna in range(1, orange_slices):\n", + " for boris in range(1, orange_slices):\n", + " for vova in range(1, orange_slices):\n", + " if anna + boris + vova == orange_slices:\n", + " print(anna, boris, vova)\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " we_shared_orange()" + ] + }, + { + "cell_type": "markdown", + "id": "ddefb4b0", + "metadata": {}, + "source": [ + "### Простая задача 3.0\n", + "- Простые числа — это такие, у которых только два делителя: 1 и само число. В этой задаче вам нужно определить, сколько простых чисел назвали участники.\n", + "- Формат ввода\n", + "- В первой строке записано число N Во всех последующих N строках — по одному числу.\n", + "- Формат вывода\n", + "- Требуется вывести общее количество простых чисел среди введённых (кроме N)." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "c3762050", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3\n" + ] + } + ], + "source": [ + "def simple_task_3() -> None:\n", + " \"\"\"simple_task_3.\"\"\"\n", + " count_task: int = int(input())\n", + " number_count: int = 0\n", + "\n", + " for _ in range(count_task):\n", + " number_task: int = int(input())\n", + " if number_task < 2:\n", + " continue\n", + " is_prime: bool = True\n", + " for divisor in range(2, int(number_task**0.5) + 1):\n", + " if number_task % divisor == 0:\n", + " is_prime = False\n", + " break\n", + " if is_prime:\n", + " number_count += 1\n", + " print(number_count)\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " simple_task_3()" + ] + }, + { + "cell_type": "markdown", + "id": "8820a12e", + "metadata": {}, + "source": [ + "### Числовой прямоугольник\n", + "- В детском саду ребята учатся считать, а чтобы это было веселее, воспитательница решила показывать числа в виде аккуратного числового прямоугольника.\n", + "Дети учатся быстро, и теперь ей нужна программа, которая будет строить такие прямоугольники автоматически.\n", + "- Напишите программу, которая строит прямоугольник из чисел от 1 до N × M и форматирует их так, чтобы все столбцы были одинаковой ширины.\n", + "- Формат ввода\n", + "- В первой строке записано число N — высота числового прямоугольника.\n", + "Во второй строке указано число M — ширина числового прямоугольника.\n", + "- Формат вывода\n", + "- Нужно вывести сформированный числовой прямоугольник требуемого размера.\n", + "Чтобы прямоугольник был красивым, каждый его столбец должен быть одинаковой ширины." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a145c471", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1 2 3 \n", + "4 5 6 \n" + ] + } + ], + "source": [ + "def number_rectangle() -> None:\n", + " \"\"\"number_rectangle.\"\"\"\n", + " n_rec: int = int(input())\n", + " m_rec: int = int(input())\n", + " max_number: int = m_rec * n_rec\n", + " width: int = 0\n", + " temp: int = max_number\n", + " while temp:\n", + " width += 1\n", + " temp //= 10\n", + " if max_number == 0:\n", + " width = 1\n", + " for row in range(n_rec):\n", + " for col in range(m_rec):\n", + " number_rec: int = row * m_rec + col + 1\n", + " print(f\"{number_rec:>{width}}\", end=\" \")\n", + " print()\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " number_rectangle()" + ] + }, + { + "cell_type": "markdown", + "id": "07027450", + "metadata": {}, + "source": [ + "### Числовой прямоугольник 2.0\n", + "- Напишите программу, которая заполняет прямоугольник числами от 1 до N × M, по столбцам, а не по строкам и форматирует их так, чтобы все столбцы были одинаковой ширины.\n", + "- Формат ввода\n", + "- В первой строке записано число N — высота числового прямоугольника. Во второй строке указано число M — ширина числового прямоугольника.\n", + "- Формат вывода\n", + "- Нужно вывести сформированный числовой прямоугольник требуемого размера. Чтобы прямоугольник был красивым, каждый его столбец должен обладать одинаковой шириной." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8b224374", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1 3 5 \n", + "2 4 6 \n" + ] + } + ], + "source": [ + "def number_rectangle_2() -> None:\n", + " \"\"\"number_rectangle_2.\"\"\"\n", + " a_rec: int = int(input())\n", + " b_rec: int = int(input())\n", + " max_numb: int = b_rec * a_rec\n", + " width_rec: int = 0\n", + " temp_rec: int = max_numb\n", + " while temp_rec:\n", + " width_rec += 1\n", + " temp_rec //= 10\n", + " if max_numb == 0:\n", + " width_rec = 1\n", + " for row_rec in range(a_rec):\n", + " for col_rec in range(b_rec):\n", + " numb_rec: int = col_rec * a_rec + row_rec + 1\n", + " print(f\"{numb_rec:>{width_rec}}\", end=\" \")\n", + " print()\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " number_rectangle_2()" + ] + }, + { + "cell_type": "markdown", + "id": "2460db17", + "metadata": {}, + "source": [ + "### Числовая змейка\n", + "- Обычные прямоугольники — это, конечно, хорошо… но дети быстро теряют к ним интерес.\n", + "Поэтому воспитательница просит вас придумать что-нибудь поинтереснее. Например — числовую змейку!\n", + "- В этой змейке строки чередуются: одна идёт слева направо, следующая — справа налево, потом снова слева направо… и так далее.\n", + "Настоящее приключение для тех, кто учит числа!\n", + "- Напишите программу, которая строит числовую змейку из чисел от 1 до N × M.\n", + "- Формат ввода\n", + "- В первой строке записано число N — высота числового прямоугольника.\n", + "- Во второй строке указано число M — ширина числового прямоугольника.\n", + "Формат вывода\n", + "- Нужно вывести сформированную числовую змейку требуемого размера.\n", + "Чтобы прямоугольник был красивым, каждый его столбец следует сделать одинаковой ширины." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "25fc2939", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1 2 3 \n", + "6 5 4 \n" + ] + } + ], + "source": [ + "def number_snake() -> None:\n", + " \"\"\"number_snake.\"\"\"\n", + " n_snake: int = int(input())\n", + " m_snake: int = int(input())\n", + " max_numb_s: int = m_snake * n_snake\n", + " width_s: int = 0\n", + " temp_s: int = max_numb_s\n", + " while temp_s:\n", + " width_s += 1\n", + " temp_s //= 10\n", + " if max_numb_s == 0:\n", + " width_s = 1\n", + " for row_s in range(n_snake):\n", + " for col_s in range(m_snake):\n", + " numb_snake: int = (\n", + " (row_s * m_snake + col_s + 1)\n", + " if row_s % 2 == 0\n", + " else (row_s * m_snake + m_snake - col_s)\n", + " )\n", + " print(f\"{numb_snake:>{width_s}}\", end=\" \")\n", + " print()\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " number_snake()" + ] + }, + { + "cell_type": "markdown", + "id": "4d04d828", + "metadata": {}, + "source": [ + "### Редизайн таблицы умножения\n", + "- А теперь — немного эстетики. Да, таблица умножения работает, но... выглядит-то она скучно.\n", + "Пора навести порядок и добавить стиля!\n", + "_ Ваш новый заказчик просит:\n", + "одинаковую ширину столбцов,\n", + "выравнивание по центру,\n", + "и — внимание! — рамки между ячейками.\n", + "- Формат ввода\n", + "- В первой строке записан требуемый размер таблицы. Во второй строке — ширина столбцов.\n", + "- Формат вывода\n", + "- Таблица умножения заданного размера и вида." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "ce81a998", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " 1 | 2 | 3 \n", + "-----------\n", + " 2 | 4 | 6 \n", + "-----------\n", + " 3 | 6 | 9 \n" + ] + } + ], + "source": [ + "def redesign_table() -> None:\n", + " \"\"\"redesign_table.\"\"\"\n", + " n_red: int = int(input())\n", + " m_red: int = int(input())\n", + " for row_number in range(1, n_red + 1):\n", + " row_values: list[str] = [\n", + " f\"{row_number * col_number:^{m_red}}\" for col_number in range(1, n_red + 1)\n", + " ]\n", + " print(\"|\".join(row_values))\n", + "\n", + " if row_number < n_red:\n", + " print(\"-\" * (n_red * (m_red + 1) - 1))\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " redesign_table()" + ] + }, + { + "cell_type": "markdown", + "id": "6b589bce", + "metadata": {}, + "source": [ + "### А роза упала на лапу Азора 3.0\n", + "- Палиндром — это число (или слово), которое читается одинаково в обе стороны. Например: 121, 454, 7.\n", + "А вот 123 — уже не палиндром.\n", + "- В этой задаче вам нужно определить, сколько палиндромов встретилось в списке чисел, названных детьми.\n", + "- Формат ввода\n", + "- В первой строке записано число N Во всех последующих N строках указано по одному числу.\n", + "- Формат вывода\n", + "- Требуется вывести общее количество палиндромов среди введённых чисел (кроме числа N)." + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "6f25b986", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2\n" + ] + } + ], + "source": [ + "def palindrome_3() -> None:\n", + " \"\"\"palindrome_3.\"\"\"\n", + " number_pal: int = int(input())\n", + " count_pal: int = 0\n", + " for _ in range(number_pal):\n", + " numb_pal: str = input()\n", + " length: int = len(numb_pal)\n", + " left: int = 0\n", + " right: int = length - 1\n", + " is_palindrome: bool = True\n", + " while left < right:\n", + " if numb_pal[left] != numb_pal[right]:\n", + " is_palindrome = False\n", + " break\n", + " left += 1\n", + " right -= 1\n", + " if is_palindrome:\n", + " count_pal += 1\n", + " print(count_pal)\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " palindrome_3()" + ] + }, + { + "cell_type": "markdown", + "id": "18b0692a", + "metadata": {}, + "source": [ + "### Новогоднее настроение 2.0\n", + "- Праздники приближаются, и коллеги великого математика снова хотят его порадовать.На этот раз — с помощью ещё более красивых математических ёлок!\n", + "- Вас снова зовут в качестве главного креативного программиста.Нужно сделать так, чтобы каждая строка ёлки была аккуратно выровнена по центру — строго, симметрично, празднично.\n", + "- Формат ввода\n", + "- Вводится одно натуральное число — количество чисел в математической ёлке.\n", + "- Формат вывода\n", + "- Требуемая новогодня ёлка.\n", + "- Примечание\n", + "- Гарантируется, что последняя строка будет самой длинной.Не забывайте про существование f-строк." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "316ea224", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " 1\n", + " 2 3\n", + " 4 5 6\n", + " 7 8 9 10\n", + "11 12 13 14\n" + ] + } + ], + "source": [ + "def christmas_mood_2() -> None:\n", + " \"\"\"christmas_mood_2.\"\"\"\n", + " max_numb_chr: int = int(input())\n", + " current: int = 1\n", + " row_chr: int = 1\n", + " max_width: int = 0\n", + " while current <= max_numb_chr:\n", + " line_chr: str = \"\"\n", + " for _ in range(row_chr):\n", + " if current <= max_numb_chr:\n", + " if line_chr:\n", + " line_chr += \" \"\n", + " line_chr += str(current)\n", + " current += 1\n", + " max_width = max(max_width, len(line_chr))\n", + " row_chr += 1\n", + " current = 1\n", + " row_chr = 1\n", + " while current <= max_numb_chr:\n", + " line_chr = \"\"\n", + " for _ in range(row_chr):\n", + " if current <= max_numb_chr:\n", + " if line_chr:\n", + " line_chr += \" \"\n", + " line_chr += str(current)\n", + " current += 1\n", + " spaces: int = (max_width - len(line_chr)) // 2\n", + " print(\" \" * spaces + line_chr)\n", + " row_chr += 1\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " christmas_mood_2()" + ] + }, + { + "cell_type": "markdown", + "id": "c9235abd", + "metadata": {}, + "source": [ + "### Числовой квадрат\n", + "- Ох, дети растут быстро и становятся всё требовательнее — даже змейки им теперь кажутся скучными!Воспитательница в панике, но вы уже здесь — и готовы придумать что-то новенькое.На этот раз им хочется увидеть числовой квадрат, который будто состоит из слоёв — как матрёшка из чисел.Выглядит эффектно, а строится... проще, чем кажется!\n", + "- Формат ввода\n", + "- В первой строке записано число N — высота и ширина числового квадрата.\n", + "- Формат вывода\n", + "- Требуется вывести сформированный числовой квадрат требуемого размера.Чтобы квадрат был красивым, каждый его столбец — одинаковой ширины." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "18516b78", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1 1 1 1 1 \n", + "1 2 2 2 1 \n", + "1 2 3 2 1 \n", + "1 2 2 2 1 \n", + "1 1 1 1 1 \n" + ] + } + ], + "source": [ + "def number_square() -> None:\n", + " \"\"\"number_square.\"\"\"\n", + " size_squ: int = int(input())\n", + " cell_width: int = len(str((size_squ + 1) // 2))\n", + " for i in range(size_squ):\n", + " for j_squ in range(size_squ):\n", + " print(\n", + " f\"{min(i + 1, j_squ + 1, size_squ - i, size_squ - j_squ):>{cell_width}}\",\n", + " end=\" \",\n", + " )\n", + " print()\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " number_square()" + ] + }, + { + "cell_type": "markdown", + "id": "5df35584", + "metadata": {}, + "source": [ + "### Математическая выгода\n", + "- Виталий Евгеньевич задумался:А какая система счисления — самая выгодная?По его логике, выгодной считается та система счисления, в которой сумма цифр числа — наибольшая.А если таких систем несколько — он выбирает наименьшее основание из них.Ваша задача — помочь ему это выяснить!\n", + "- Формат ввода\n", + "- Одно натурально число.\n", + "- Формат вывода\n", + "- Одно натуральное число из диапазона [2:10] — основание системы счисления с максимальной выгодой.\n", + "Если таких оснований несколько, выбирается наименьшее." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "55616dc6", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "7\n" + ] + } + ], + "source": [ + "def mathematical_benefit() -> None:\n", + " \"\"\"mathematical_benefit.\"\"\"\n", + " number_math: int = int(input())\n", + " max_sum_math: int = -1\n", + " best_base: int = 2\n", + " for base in range(2, 11):\n", + " n_math: int = number_math\n", + " current_sum: int = 0\n", + " while n_math:\n", + " current_sum += n_math % base\n", + " n_math = n_math // base\n", + " if current_sum > max_sum_math:\n", + " max_sum_math = current_sum\n", + " best_base = base\n", + " elif current_sum == max_sum_math and base < best_base:\n", + " best_base = base\n", + " print(best_base)\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " mathematical_benefit()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "fd176685", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.12" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/python/yandex/nested_loops_2_4.py b/python/yandex/nested_loops_2_4.py new file mode 100644 index 00000000..c68270b9 --- /dev/null +++ b/python/yandex/nested_loops_2_4.py @@ -0,0 +1,642 @@ +"""Вложенные циклы. + +Узнаем как работают вложенные циклы в Python, и научимся управлять выполнением кода с +помощью операторов break, continue и else. Вы узнаете, как останавливать вложенные циклы с +помощью флагов и правильно строить логику выхода из повторяющихся действий. +""" + +# ### Таблица умножения +# +# - Местная фабрика канцелярских товаров заказала у вас программу, которая генерирует таблицы умножения. +# Давайте поддержим локального производителя! +# - Напишите программу, которая по введённому числу n выводит таблицу умножения размера n × n. +# - Формат ввода +# - Вводится одно натуральное число — требуемый размер таблицы. +# - Формат вывода +# - Таблица умножения заданного размера. + + +# + +def multiplication_table() -> None: + """multiplication_table.""" + num_table: int = int(input()) + for i in range(1, num_table + 1): + for j_mult in range(1, num_table + 1): + print(i * j_mult, end=" ") + print() + + +if __name__ == "__main__": + multiplication_table() + + +# - + +# ### Не таблица умножения +# - Продолжим поддерживать местный бизнес, используя вложенные циклы. +# - Напишите программу, которая по введённому числу n выводит все произведения чисел от 1 до n в виде отдельных выражений. +# - Порядок важен: сначала фиксируем второе число (внешний цикл), а внутри — перебираем первое. +# - Формат ввода +# - Вводится одно натуральное число — требуемый размер «не таблицы». +# - Формат вывода +# - Не таблица умножения заданного размера. + + +# + +def not_multiplication_table() -> None: + """not_multiplication_table.""" + numb_table: int = int(input()) + for i in range(1, numb_table + 1): + for j_nmt in range(1, numb_table + 1): + print(f"{j_nmt} * {i} = {i * j_nmt}", end="\n") + + +if __name__ == "__main__": + not_multiplication_table() + + +# - + +# ### Новогоднее настроение +# - Великий математик Виталий Евгеньевич каждый Новый год проводит... на работе. +# Коллеги всегда любили и ценили его, поэтому в этом году решили сделать ему сюрприз — украсить кабинет учёного математическими ёлками. +# Конечно, без вашей помощи тут не обойтись. +# Нужно написать программу, которая создаст новогоднюю ёлку из чисел. Уверены, Виталий Евгеньевич будет рад! +# - Напишите программу, которая по введённому числу n строит «математическую ёлку» — пирамидку из чисел. +# - В первой строке одно число, во второй — два, в третьей — три... и так далее, пока не закончатся числа. +# - Формат ввода +# - Вводится одно натуральное число — количество чисел в математической ёлке. +# - Формат вывода +# - Требуемая новогодняя ёлка. + + +# + +def christmas_mood() -> None: + """christmas_mood.""" + numb_count: int = int(input()) + numb_string: int = 0 + numb_col: int = 0 + number_one: int = 1 + while number_one <= numb_count: + numb_string += 1 + numb_col = 1 + while numb_col <= numb_string and number_one <= numb_count: + print(number_one, end=" ") + numb_col += 1 + number_one += 1 + print() + + +if __name__ == "__main__": + christmas_mood() + + +# - + +# ### Суммарная сумма +# - К вам снова пришли за помощью: нужна программа, которая посчитает сумму всех цифр всех чисел, поданных на вход. +# Вы справитесь — у вас ведь уже есть всё необходимое: циклы и уверенность в своих силах! +# - Формат ввода +# - В первой строке указано число N Во всех последующих N строках написано по одному числу. +# - Формат вывода +# Требуется вывести общую сумму цифр всех введённых чисел (кроме N). + + +# + +def total_amount() -> None: + """total_amount.""" + num_str: int = int(input()) + numbers_total: int = 0 + for _ in range(num_str): + number_total: int = int(input()) + for j_tot in str(number_total): + numbers_total += int(j_tot) + print(numbers_total) + + +if __name__ == "__main__": + total_amount() + + +# - + +# ### Зайка — 5 +# - В этой задаче вас снова ждёт помощь в семейной поездке. +# В долгой дороге дети начали скучать, и родители развлекают их игрой «Кто первым увидит зверушку за окном». +# - Ваша задача — написать программу, которая помогает считать местности, где была замечена зайка. +# - Формат ввода +# - В первой строке указано натуральное число N — количество выделенных придорожных местностей. В последующих строках записаны слова характеризующие выделенную местность. +# Информация о каждой местности завершается словом «ВСЁ». +# - Формат вывода +# - Количество местностей, в которых есть зайка. + + +# + +def bunny_5() -> None: + """bunny_5.""" + numb_place: int = int(input()) + numbers_count: int = 0 + nature: int = 0 + place: str + for _ in range(numb_place): + numbers_count += 1 + found_zayka: bool = False + while (place := input()) != "ВСЁ": + if not found_zayka and place == "зайка": + nature += 1 + found_zayka = True + print(nature) + + +if __name__ == "__main__": + bunny_5() + + +# - + +# ### НОД 2.0 +# - Недавно к вам обратились из местного НИИ: им часто нужно находить наибольший общий делитель (НОД) нескольких чисел. +# Они знают, что вы с этим справитесь! +# - Формат ввода +# - В первой строке записано одно число N — количество данных. В каждой из последующих N строк записано по одному натуральному числу. +# - Формат вывода +# - Требуется вывести одно натуральное число — НОД всех данных чисел (кроме N). +# - Примечание +# - Самый распространённый способ поиска НОД — Алгоритм Эвклида. + + +# + +def greatest_common_divisor_2() -> None: + """greatest_common_divisor_2.""" + numbers_div: int = int(input()) + current_gcd: int = int(input()) + for _ in range(numbers_div - 1): + numb_div: int = int(input()) + a_div: int = current_gcd + b_div: int = numb_div + while b_div: + a_div, b_div = b_div, a_div % b_div + current_gcd = a_div + if current_gcd == 1: + break + print(current_gcd) + + +if __name__ == "__main__": + greatest_common_divisor_2() + + +# - + +# ### На старт! Внимание! Марш! +# - На велогонках важно всё автоматизировать: особенно старт. +# По правилам квалификации каждый гонщик стартует с задержкой на секунду больше, чем предыдущий. +# Первый гонщик стартует после отсчёта: 3, 2, 1... старт! +# Второй — 4, 3, 2, 1... старт! +# И так далее. +# Пора подключать вложенные циклы! +# - Формат ввода +# - Вводится одно натуральное число — количество участников велогонки. +# - Формат вывода +# - Требуется вывести отсчёт. + + +# + +def start_go() -> None: + """start_go.""" + number_participants: int = int(input()) + for i in range(number_participants): + for j_strt in range(i + 3, 0, -1): + print(f"До старта {j_strt} секунд(ы)") + print(f"Старт {i + 1}!!!") + + +if __name__ == "__main__": + start_go() + + +# - + +# ### Максимальная сумма +# - Там ребята придумали новую игру: каждый называет какое-нибудь число, а тот, чьё число имеет наибольшую сумму цифр, выигрывает. +# Судьёй выбрали бедную воспитательницу, и она попросила вас о помощи... ну как тут откажешь? +# - Формат ввода +# - В первой строке записано число N — количество детей в группе. Далее вводятся имя ребенка и его число (каждое на своей строке). +# - Формат вывода +# - Требуется вывести имя победителя. +# Если два ребенка назвали числа с одинаковой суммой цифр, победителем должен быть признан тот, кто ходил позже. + + +# + +def maximum_amount() -> None: + """maximum_amount.""" + count_amount: int = int(input()) + max_sum: int = 0 + max_sum_name: str | None = None + + for _ in range(count_amount): + baby_name: str = input() + baby_numb: int = int(input()) + number_sum: int = sum(int(digit) for digit in str(baby_numb)) + + if number_sum >= max_sum: + max_sum = number_sum + max_sum_name = baby_name + print(max_sum_name) + + +if __name__ == "__main__": + maximum_amount() + + +# - + +# ### Большое число +# - Дети в детском саду снова придумали игру: каждый называет число, составленное из тех цифр, которые он знает. +# А потом они собирают общее число, выбирая из каждого названого числа самую большую цифру. +# - Формат ввода +# - В первой строке указано число N — количество детей в группе. В каждой из последующих N строк записано число. +# - Формат вывода +# - Одно большое число. + + +# + +def large_number() -> None: + """large_number.""" + count_big_sum: int = int(input()) + number_max_sum: str = "" + + for _ in range(count_big_sum): + number_big: int = int(input()) + numb_sum: int = max(int(digit) for digit in str(number_big)) + number_max_sum += str(numb_sum) + print(number_max_sum) + + +if __name__ == "__main__": + large_number() + + +# - + +# ### Мы делили апельсин +# - Аня, Боря и Вова решили съесть апельсин. Но просто так — неинтересно! +# Они хотят узнать все возможные способы, как можно его разделить между собой по справедливости. +# - Примечание +# - Каждому ребёнку должна достаться хотя бы одна долька апельсина. +# Ни одной дольки не должно остаться. +# Выводить варианты в порядке увеличения количества долек у Ани, затем Бори и затем уже Вовы. +# - Формат ввода +# - В единственной строке записано количество доступных долек апельсина. +# - Формат вывода +# - Таблица вариантов распределения долек апельсина. + + +# + +def we_shared_orange() -> None: + """we_shared_orange.""" + orange_slices: int = int(input()) + print("А", "Б", "В") + for anna in range(1, orange_slices): + for boris in range(1, orange_slices): + for vova in range(1, orange_slices): + if anna + boris + vova == orange_slices: + print(anna, boris, vova) + + +if __name__ == "__main__": + we_shared_orange() + + +# - + +# ### Простая задача 3.0 +# - Простые числа — это такие, у которых только два делителя: 1 и само число. В этой задаче вам нужно определить, сколько простых чисел назвали участники. +# - Формат ввода +# - В первой строке записано число N Во всех последующих N строках — по одному числу. +# - Формат вывода +# - Требуется вывести общее количество простых чисел среди введённых (кроме N). + + +# + +def simple_task_3() -> None: + """simple_task_3.""" + count_task: int = int(input()) + number_count: int = 0 + + for _ in range(count_task): + number_task: int = int(input()) + if number_task < 2: + continue + is_prime: bool = True + for divisor in range(2, int(number_task**0.5) + 1): + if number_task % divisor == 0: + is_prime = False + break + if is_prime: + number_count += 1 + print(number_count) + + +if __name__ == "__main__": + simple_task_3() + + +# - + +# ### Числовой прямоугольник +# - В детском саду ребята учатся считать, а чтобы это было веселее, воспитательница решила показывать числа в виде аккуратного числового прямоугольника. +# Дети учатся быстро, и теперь ей нужна программа, которая будет строить такие прямоугольники автоматически. +# - Напишите программу, которая строит прямоугольник из чисел от 1 до N × M и форматирует их так, чтобы все столбцы были одинаковой ширины. +# - Формат ввода +# - В первой строке записано число N — высота числового прямоугольника. +# Во второй строке указано число M — ширина числового прямоугольника. +# - Формат вывода +# - Нужно вывести сформированный числовой прямоугольник требуемого размера. +# Чтобы прямоугольник был красивым, каждый его столбец должен быть одинаковой ширины. + + +# + +def number_rectangle() -> None: + """number_rectangle.""" + n_rec: int = int(input()) + m_rec: int = int(input()) + max_number: int = m_rec * n_rec + width: int = 0 + temp: int = max_number + while temp: + width += 1 + temp //= 10 + if max_number == 0: + width = 1 + for row in range(n_rec): + for col in range(m_rec): + number_rec: int = row * m_rec + col + 1 + print(f"{number_rec:>{width}}", end=" ") + print() + + +if __name__ == "__main__": + number_rectangle() + + +# - + +# ### Числовой прямоугольник 2.0 +# - Напишите программу, которая заполняет прямоугольник числами от 1 до N × M, по столбцам, а не по строкам и форматирует их так, чтобы все столбцы были одинаковой ширины. +# - Формат ввода +# - В первой строке записано число N — высота числового прямоугольника. Во второй строке указано число M — ширина числового прямоугольника. +# - Формат вывода +# - Нужно вывести сформированный числовой прямоугольник требуемого размера. Чтобы прямоугольник был красивым, каждый его столбец должен обладать одинаковой шириной. + + +# + +def number_rectangle_2() -> None: + """number_rectangle_2.""" + a_rec: int = int(input()) + b_rec: int = int(input()) + max_numb: int = b_rec * a_rec + width_rec: int = 0 + temp_rec: int = max_numb + while temp_rec: + width_rec += 1 + temp_rec //= 10 + if max_numb == 0: + width_rec = 1 + for row_rec in range(a_rec): + for col_rec in range(b_rec): + numb_rec: int = col_rec * a_rec + row_rec + 1 + print(f"{numb_rec:>{width_rec}}", end=" ") + print() + + +if __name__ == "__main__": + number_rectangle_2() + + +# - + +# ### Числовая змейка +# - Обычные прямоугольники — это, конечно, хорошо… но дети быстро теряют к ним интерес. +# Поэтому воспитательница просит вас придумать что-нибудь поинтереснее. Например — числовую змейку! +# - В этой змейке строки чередуются: одна идёт слева направо, следующая — справа налево, потом снова слева направо… и так далее. +# Настоящее приключение для тех, кто учит числа! +# - Напишите программу, которая строит числовую змейку из чисел от 1 до N × M. +# - Формат ввода +# - В первой строке записано число N — высота числового прямоугольника. +# - Во второй строке указано число M — ширина числового прямоугольника. +# Формат вывода +# - Нужно вывести сформированную числовую змейку требуемого размера. +# Чтобы прямоугольник был красивым, каждый его столбец следует сделать одинаковой ширины. + + +# + +def number_snake() -> None: + """number_snake.""" + n_snake: int = int(input()) + m_snake: int = int(input()) + max_numb_s: int = m_snake * n_snake + width_s: int = 0 + temp_s: int = max_numb_s + while temp_s: + width_s += 1 + temp_s //= 10 + if max_numb_s == 0: + width_s = 1 + for row_s in range(n_snake): + for col_s in range(m_snake): + numb_snake: int = ( + (row_s * m_snake + col_s + 1) + if row_s % 2 == 0 + else (row_s * m_snake + m_snake - col_s) + ) + print(f"{numb_snake:>{width_s}}", end=" ") + print() + + +if __name__ == "__main__": + number_snake() + + +# - + +# ### Редизайн таблицы умножения +# - А теперь — немного эстетики. Да, таблица умножения работает, но... выглядит-то она скучно. +# Пора навести порядок и добавить стиля! +# _ Ваш новый заказчик просит: +# одинаковую ширину столбцов, +# выравнивание по центру, +# и — внимание! — рамки между ячейками. +# - Формат ввода +# - В первой строке записан требуемый размер таблицы. Во второй строке — ширина столбцов. +# - Формат вывода +# - Таблица умножения заданного размера и вида. + + +# + +def redesign_table() -> None: + """redesign_table.""" + n_red: int = int(input()) + m_red: int = int(input()) + for row_number in range(1, n_red + 1): + row_values: list[str] = [ + f"{row_number * col_number:^{m_red}}" for col_number in range(1, n_red + 1) + ] + print("|".join(row_values)) + + if row_number < n_red: + print("-" * (n_red * (m_red + 1) - 1)) + + +if __name__ == "__main__": + redesign_table() + + +# - + +# ### А роза упала на лапу Азора 3.0 +# - Палиндром — это число (или слово), которое читается одинаково в обе стороны. Например: 121, 454, 7. +# А вот 123 — уже не палиндром. +# - В этой задаче вам нужно определить, сколько палиндромов встретилось в списке чисел, названных детьми. +# - Формат ввода +# - В первой строке записано число N Во всех последующих N строках указано по одному числу. +# - Формат вывода +# - Требуется вывести общее количество палиндромов среди введённых чисел (кроме числа N). + + +# + +def palindrome_3() -> None: + """palindrome_3.""" + number_pal: int = int(input()) + count_pal: int = 0 + for _ in range(number_pal): + numb_pal: str = input() + length: int = len(numb_pal) + left: int = 0 + right: int = length - 1 + is_palindrome: bool = True + while left < right: + if numb_pal[left] != numb_pal[right]: + is_palindrome = False + break + left += 1 + right -= 1 + if is_palindrome: + count_pal += 1 + print(count_pal) + + +if __name__ == "__main__": + palindrome_3() + + +# - + +# ### Новогоднее настроение 2.0 +# - Праздники приближаются, и коллеги великого математика снова хотят его порадовать.На этот раз — с помощью ещё более красивых математических ёлок! +# - Вас снова зовут в качестве главного креативного программиста.Нужно сделать так, чтобы каждая строка ёлки была аккуратно выровнена по центру — строго, симметрично, празднично. +# - Формат ввода +# - Вводится одно натуральное число — количество чисел в математической ёлке. +# - Формат вывода +# - Требуемая новогодня ёлка. +# - Примечание +# - Гарантируется, что последняя строка будет самой длинной.Не забывайте про существование f-строк. + + +# + +def christmas_mood_2() -> None: + """christmas_mood_2.""" + max_numb_chr: int = int(input()) + current: int = 1 + row_chr: int = 1 + max_width: int = 0 + while current <= max_numb_chr: + line_chr: str = "" + for _ in range(row_chr): + if current <= max_numb_chr: + if line_chr: + line_chr += " " + line_chr += str(current) + current += 1 + max_width = max(max_width, len(line_chr)) + row_chr += 1 + current = 1 + row_chr = 1 + while current <= max_numb_chr: + line_chr = "" + for _ in range(row_chr): + if current <= max_numb_chr: + if line_chr: + line_chr += " " + line_chr += str(current) + current += 1 + spaces: int = (max_width - len(line_chr)) // 2 + print(" " * spaces + line_chr) + row_chr += 1 + + +if __name__ == "__main__": + christmas_mood_2() + + +# - + +# ### Числовой квадрат +# - Ох, дети растут быстро и становятся всё требовательнее — даже змейки им теперь кажутся скучными!Воспитательница в панике, но вы уже здесь — и готовы придумать что-то новенькое.На этот раз им хочется увидеть числовой квадрат, который будто состоит из слоёв — как матрёшка из чисел.Выглядит эффектно, а строится... проще, чем кажется! +# - Формат ввода +# - В первой строке записано число N — высота и ширина числового квадрата. +# - Формат вывода +# - Требуется вывести сформированный числовой квадрат требуемого размера.Чтобы квадрат был красивым, каждый его столбец — одинаковой ширины. + + +# + +def number_square() -> None: + """number_square.""" + size_squ: int = int(input()) + cell_width: int = len(str((size_squ + 1) // 2)) + for i in range(size_squ): + for j_squ in range(size_squ): + print( + f"{min(i + 1, j_squ + 1, size_squ - i, size_squ - j_squ):>{cell_width}}", + end=" ", + ) + print() + + +if __name__ == "__main__": + number_square() + + +# - + +# ### Математическая выгода +# - Виталий Евгеньевич задумался:А какая система счисления — самая выгодная?По его логике, выгодной считается та система счисления, в которой сумма цифр числа — наибольшая.А если таких систем несколько — он выбирает наименьшее основание из них.Ваша задача — помочь ему это выяснить! +# - Формат ввода +# - Одно натурально число. +# - Формат вывода +# - Одно натуральное число из диапазона [2:10] — основание системы счисления с максимальной выгодой. +# Если таких оснований несколько, выбирается наименьшее. + + +# + +def mathematical_benefit() -> None: + """mathematical_benefit.""" + number_math: int = int(input()) + max_sum_math: int = -1 + best_base: int = 2 + for base in range(2, 11): + n_math: int = number_math + current_sum: int = 0 + while n_math: + current_sum += n_math % base + n_math = n_math // base + if current_sum > max_sum_math: + max_sum_math = current_sum + best_base = base + elif current_sum == max_sum_math and base < best_base: + best_base = base + print(best_base) + + +if __name__ == "__main__": + mathematical_benefit() diff --git a/python/yandex/recursion_decorators_generators_4_3.ipynb b/python/yandex/recursion_decorators_generators_4_3.ipynb new file mode 100644 index 00000000..3158d836 --- /dev/null +++ b/python/yandex/recursion_decorators_generators_4_3.ipynb @@ -0,0 +1,377 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "id": "61b1b782", + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"Рекурсия. Декораторы. Генераторы.\n", + "\n", + "вы познакомитесь с продвинутыми приёмами работы\n", + "с функциями. Мы разберём, как устроены рекурсивные\n", + "функции и чем они отличаются от привычных императивных\n", + "решений. Вы научитесь ускорять рекурсивные вычисления\n", + "с помощью кеширования и декораторов, а также узнаете,\n", + "как писать функции, которые возвращают значения по мере\n", + "необходимости, — с помощью генераторов и оператора yield.\n", + "\"\"\"" + ] + }, + { + "cell_type": "markdown", + "id": "878c23b0", + "metadata": {}, + "source": [ + "## Рекурсивный сумматор.\n", + "\n", + "- Большинство задач этой главы ориентировано на отработку навыков по разработке рекурсивных функций.\n", + "- Ваше решение будет использоваться как библиотека.\n", + "- Напишите функцию recursive_sum, которая находит сумму всех позиционных аргументов.\n", + "- Примечание\n", + "- Ваше решение должно содержать только функции.\n", + "- В решении не должно быть вызовов требуемых функций, за исключением рекурсивных.\n", + "- Трассировка вызова рекурсивной функции в обработке ответа не учитывается и показана для примера." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "64294204", + "metadata": {}, + "outputs": [], + "source": [ + "from types import FunctionType\n", + "from typing import Callable, Generator, Iterator, Optional, ParamSpec, TypeVar\n", + "\n", + "\n", + "def recursive_sum(*args: int) -> int:\n", + " \"\"\"Рекурсивно суммирует целые числа.\"\"\"\n", + " if not args:\n", + " return 0\n", + " return recursive_sum(*args[:-1]) + args[-1]" + ] + }, + { + "cell_type": "markdown", + "id": "2f1da2c3", + "metadata": {}, + "source": [ + "## Pекурсивный сумматор цифр.\n", + "\n", + "- Рекурсия – отличный способ избавиться от циклов, особенно от while. Давайте вспомним одну из наших старых задач и модернизируем её.\n", + "- Напишите функцию recursive_digit_sum, которая находит сумму всех цифр натурального числа.\n", + "- Примечание\n", + "- Ваше решение должно содержать только функции.\n", + "- В решении не должно быть вызовов требуемых функций, за исключением рекурсивных.\n", + "- Трассировка вызова рекурсивной функции в обработке ответа не учитывается и показана для примера." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b230296b", + "metadata": {}, + "outputs": [], + "source": [ + "def recursive_digit_sum(number: int) -> int:\n", + " \"\"\"Рекурсивно суммирует цифры числа.\"\"\"\n", + " if number == 0:\n", + " return 0\n", + " return recursive_digit_sum(number // 10) + number % 10" + ] + }, + { + "cell_type": "markdown", + "id": "694e0952", + "metadata": {}, + "source": [ + "## Многочлен N-ой степени.\n", + "\n", + "- Напишите функцию make_equation, которая по заданным коэффициентам строит строку, описывающую валидное с точки зрения Python выражение без использования оператора возведения в степень.\n", + "- Многочлен второй степени с коэффициентами a, b и c, например, можно записать в виде:((a)∗x+b)∗x+c\n", + "- Примечание\n", + "- Ваше решение должно содержать только функции.\n", + "- В решении не должно быть вызовов требуемых функций, за исключением рекурсивных.\n", + "- Трассировка вызова рекурсивной функции в обработке ответа не учитывается и показана для примера." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "38997e4f", + "metadata": {}, + "outputs": [], + "source": [ + "def make_equation(*coefficients: int) -> str:\n", + " \"\"\"Строит полином по коэффициентам в виде строки.\"\"\"\n", + " if len(coefficients) == 1:\n", + " return str(coefficients[0])\n", + " return f\"({make_equation(*coefficients[:-1])}) * x + {coefficients[-1]}\"" + ] + }, + { + "cell_type": "markdown", + "id": "5034e800", + "metadata": {}, + "source": [ + "## Декор результата.\n", + "\n", + "- Напишите декоратор answer, который преобразует функцию, принимающую неограниченное число позиционных и именованных параметров и возвращает её результат с припиской \"Результат функции: <значение>\".\n", + "- Примечание\n", + "- Ваше решение должно содержать только функции.\n", + "- В решении не должно быть вызовов требуемых функций." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "95fea82c", + "metadata": {}, + "outputs": [], + "source": [ + "def answer(function: FunctionType) -> object:\n", + " \"\"\"Декоратор, добавляющий префикс к результату функции.\"\"\"\n", + "\n", + " def new_function(*args: object, **kwargs: object) -> str:\n", + " result = function(*args, **kwargs)\n", + " return f\"Результат функции: {result}\"\n", + "\n", + " return new_function" + ] + }, + { + "cell_type": "markdown", + "id": "a141428b", + "metadata": {}, + "source": [ + "## Накопление результата.\n", + "\n", + "- В некоторых случаях полезно накапливать результат, а затем получать его единым списком. Реализуйте декоратор result_accumulator, который модернизирует функцию с неопределенным количеством позиционных параметров следующим образом:\n", + "- Добавляет именованный параметр method со значением по умолчанию accumulate;\n", + "- При вызове функции с параметром method равным accumulate, результат сохраняется в очередь (для каждой функции в собственную), а функция ничего не возвращает;\n", + "- При вызове функции с параметром method равным drop, возвращается все накопленные результаты, а очередь сбрасывается.\n", + "- Примечание\n", + "- Ваше решение должно содержать только функции.\n", + "- В решении не должно быть вызовов требуемых функций." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "03454e3a", + "metadata": {}, + "outputs": [], + "source": [ + "def result_accumulator(function: FunctionType) -> object:\n", + " \"\"\"Копит результаты и отдаёт их списком при method='drop'.\"\"\"\n", + " results: list[object] = []\n", + "\n", + " def wrapper(*args: object, method: str = \"accumulate\") -> list[object] | None:\n", + " \"\"\"Добавляет результат; при 'drop' возвращает накопленное и очищает.\"\"\"\n", + " result: object = function(*args)\n", + " results.append(result)\n", + " if method == \"drop\":\n", + " accumulated: list[object] = list(results)\n", + " results.clear()\n", + " return accumulated\n", + " return None\n", + "\n", + " return wrapper" + ] + }, + { + "cell_type": "markdown", + "id": "b7999e7e", + "metadata": {}, + "source": [ + "## Сортировка слиянием.\n", + "\n", + "- Мы уже реализовывали функцию merge, которая способна \"слить\" два отсортированных списка в один.\n", + "- Чаще всего её применяют в рекурсивном алгоритме сортировки слиянием.\n", + "- Напишите рекурсивную функцию merge_sort, которая производит сортировку списка.\n", + "- Примечание\n", + "- Ваше решение должно содержать только функции.\n", + "- В решении не должно быть вызовов требуемых функций, за исключением рекурсивных.\n", + "- Трассировка вызова рекурсивной функции в обработке ответа не учитывается и показана для примера." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9b2a1cc7", + "metadata": {}, + "outputs": [], + "source": [ + "def merge_sort(arr: list[int]) -> list[int]:\n", + " \"\"\"Сортирует список с помощью алгоритма сортировки слиянием.\"\"\"\n", + " if len(arr) <= 1:\n", + " return arr\n", + " mid = len(arr) // 2\n", + " left = arr[:mid]\n", + " right = arr[mid:]\n", + " left_sorted = merge_sort(left)\n", + " right_sorted = merge_sort(right)\n", + " return merge(left_sorted, right_sorted)\n", + "\n", + "\n", + "def merge(left: list[int], right: list[int]) -> list[int]:\n", + " \"\"\"Объединяет два отсортированных списка в один отсортированный.\"\"\"\n", + " result = []\n", + " left_index = right_index = 0\n", + " while left_index < len(left) and right_index < len(right):\n", + " if left[left_index] <= right[right_index]:\n", + " result.append(left[left_index])\n", + " left_index += 1\n", + " else:\n", + " result.append(right[right_index])\n", + " right_index += 1\n", + " while left_index < len(left):\n", + " result.append(left[left_index])\n", + " left_index += 1\n", + " while right_index < len(right):\n", + " result.append(right[right_index])\n", + " right_index += 1\n", + " return result" + ] + }, + { + "cell_type": "markdown", + "id": "fab5d62d", + "metadata": {}, + "source": [ + "## Однотипность не порок.\n", + "\n", + "- Во многих задачах требуется контроль входных данных, в частности, несмотря на динамическую типизацию, их типов.\n", + "- Разработайте декоратор same_type, который производит проверку переменного количества позиционных параметров. В случае получения не - одинаковых типов выводит сообщение \"Обнаружены различные типы данных\" и прерывает выполнение функции.\n", + "- Примечание\n", + "- Ваше решение должно содержать только функции.\n", + "- В решении не должно быть вызовов требуемых функций." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9b7e3c69", + "metadata": {}, + "outputs": [], + "source": [ + "_P = ParamSpec(\"_P\")\n", + "_R = TypeVar(\"_R\")\n", + "\n", + "\n", + "def same_type(function: Callable[_P, _R]) -> Callable[_P, Optional[_R]]:\n", + " \"\"\"Проверяет, что все аргументы одного типа.\"\"\"\n", + "\n", + " def wrapper(*args: _P.args, **kwargs: _P.kwargs) -> Optional[_R]:\n", + " if len(args) > 1 and len(set(map(type, args))) > 1:\n", + " print(\"Обнаружены различные типы данных\")\n", + " return None\n", + " return function(*args, **kwargs)\n", + "\n", + " return wrapper" + ] + }, + { + "cell_type": "markdown", + "id": "1005ca22", + "metadata": {}, + "source": [ + "## Генератор Фибоначчи.\n", + "\n", + "- Числа Фибоначчи весьма интересная последовательность и используется в различных математических задачах. В ней каждый следующий элемент равен сумме двух предыдущих. Математики начинают эту последовательность с двух единиц, но мы же с вами программисты, поэтому привыкли вести счет с нуля.\n", + "- Напишите генератор fibonacci, который последовательно возвращает заданное количество чисел Фибоначчи по \"правилам программистов\".\n", + "- Примечание\n", + "- Ваше решение должно содержать только функции.\n", + "- В решении не должно быть вызовов требуемых функций." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "befd3b8c", + "metadata": {}, + "outputs": [], + "source": [ + "def fibonacci(n_fib: int) -> Generator[int, None, None]:\n", + " \"\"\"Генерирует последовательность Фибоначчи.\"\"\"\n", + " a_fib, b_fib = 0, 1\n", + " for _ in range(n_fib):\n", + " yield a_fib\n", + " a_fib, b_fib = b_fib, a_fib + b_fib" + ] + }, + { + "cell_type": "markdown", + "id": "64204bb5", + "metadata": {}, + "source": [ + "## Циклический генератор.\n", + "\n", + "- Напишите генератор cycle, который принимает список и работает аналогично итератору itertools.cycle.\n", + "- Примечание\n", + "- Ваше решение должно содержать только функции.\n", + "- В решении не должно быть вызовов требуемых функций." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d53d6beb", + "metadata": {}, + "outputs": [], + "source": [ + "_Ti = TypeVar(\"_Ti\")\n", + "\n", + "\n", + "def cycle(items: list[_Ti]) -> Iterator[_Ti]:\n", + " \"\"\"Бесконечно повторяет элементы списка.\"\"\"\n", + " if not items:\n", + " return\n", + " while True:\n", + " yield from items" + ] + }, + { + "cell_type": "markdown", + "id": "ea31140e", + "metadata": {}, + "source": [ + "## \"Выпрямление\" списка.\n", + "\n", + "- Весьма часто, данные, которые мы получаем из различных источников, не удовлетворяют нашим пожеланиям. Одна из частых проблем – излишняя вложенность списков.\n", + "- Напишите функцию make_linear, которая принимает список списков и возвращает его \"выпрямленное\" представление.\n", + "- Примечание\n", + "- Ваше решение должно содержать только функции.\n", + "- В решении не должно быть вызовов требуемых функций, за исключением рекурсивных.\n", + "- Трассировка вызова рекурсивной функции в обработке ответа не учитывается и показана для примера." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "11d78b06", + "metadata": {}, + "outputs": [], + "source": [ + "def make_linear(nested_list: list[object]) -> list[object]:\n", + " \"\"\"Преобразует вложенные списки в плоский список.\"\"\"\n", + " result: list[object] = []\n", + " for item in nested_list:\n", + " if isinstance(item, list):\n", + " result.extend(make_linear(item))\n", + " else:\n", + " result.append(item)\n", + " return result" + ] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/python/yandex/recursion_decorators_generators_4_3.py b/python/yandex/recursion_decorators_generators_4_3.py new file mode 100644 index 00000000..8a8d1606 --- /dev/null +++ b/python/yandex/recursion_decorators_generators_4_3.py @@ -0,0 +1,245 @@ +"""Рекурсия. Декораторы. Генераторы. + +вы познакомитесь с продвинутыми приёмами работы с функциями. Мы разберём, как устроены +рекурсивные функции и чем они отличаются от привычных императивных решений. Вы научитесь +ускорять рекурсивные вычисления с помощью кеширования и декораторов, а также узнаете, как +писать функции, которые возвращают значения по мере необходимости, — с помощью генераторов +и оператора yield. +""" + +# ## Рекурсивный сумматор. +# +# - Большинство задач этой главы ориентировано на отработку навыков по разработке рекурсивных функций. +# - Ваше решение будет использоваться как библиотека. +# - Напишите функцию recursive_sum, которая находит сумму всех позиционных аргументов. +# - Примечание +# - Ваше решение должно содержать только функции. +# - В решении не должно быть вызовов требуемых функций, за исключением рекурсивных. +# - Трассировка вызова рекурсивной функции в обработке ответа не учитывается и показана для примера. + +from collections.abc import Generator, Iterator + +# + +from types import FunctionType +from typing import Callable, Optional, ParamSpec, TypeVar + + +def recursive_sum(*args: int) -> int: + """Рекурсивно суммирует целые числа.""" + if not args: + return 0 + return recursive_sum(*args[:-1]) + args[-1] + + +# - + +# ## Pекурсивный сумматор цифр. +# +# - Рекурсия – отличный способ избавиться от циклов, особенно от while. Давайте вспомним одну из наших старых задач и модернизируем её. +# - Напишите функцию recursive_digit_sum, которая находит сумму всех цифр натурального числа. +# - Примечание +# - Ваше решение должно содержать только функции. +# - В решении не должно быть вызовов требуемых функций, за исключением рекурсивных. +# - Трассировка вызова рекурсивной функции в обработке ответа не учитывается и показана для примера. + + +def recursive_digit_sum(number: int) -> int: + """Рекурсивно суммирует цифры числа.""" + if number == 0: + return 0 + return recursive_digit_sum(number // 10) + number % 10 + + +# ## Многочлен N-ой степени. +# +# - Напишите функцию make_equation, которая по заданным коэффициентам строит строку, описывающую валидное с точки зрения Python выражение без использования оператора возведения в степень. +# - Многочлен второй степени с коэффициентами a, b и c, например, можно записать в виде:((a)∗x+b)∗x+c +# - Примечание +# - Ваше решение должно содержать только функции. +# - В решении не должно быть вызовов требуемых функций, за исключением рекурсивных. +# - Трассировка вызова рекурсивной функции в обработке ответа не учитывается и показана для примера. + + +def make_equation(*coefficients: int) -> str: + """Строит полином по коэффициентам в виде строки.""" + if len(coefficients) == 1: + return str(coefficients[0]) + return f"({make_equation(*coefficients[:-1])}) * x + {coefficients[-1]}" + + +# ## Декор результата. +# +# - Напишите декоратор answer, который преобразует функцию, принимающую неограниченное число позиционных и именованных параметров и возвращает её результат с припиской "Результат функции: <значение>". +# - Примечание +# - Ваше решение должно содержать только функции. +# - В решении не должно быть вызовов требуемых функций. + + +def answer(function: FunctionType) -> object: + """Декоратор, добавляющий префикс к результату функции.""" + + def new_function(*args: object, **kwargs: object) -> str: + result = function(*args, **kwargs) + return f"Результат функции: {result}" + + return new_function + + +# ## Накопление результата. +# +# - В некоторых случаях полезно накапливать результат, а затем получать его единым списком. Реализуйте декоратор result_accumulator, который модернизирует функцию с неопределенным количеством позиционных параметров следующим образом: +# - Добавляет именованный параметр method со значением по умолчанию accumulate; +# - При вызове функции с параметром method равным accumulate, результат сохраняется в очередь (для каждой функции в собственную), а функция ничего не возвращает; +# - При вызове функции с параметром method равным drop, возвращается все накопленные результаты, а очередь сбрасывается. +# - Примечание +# - Ваше решение должно содержать только функции. +# - В решении не должно быть вызовов требуемых функций. + + +def result_accumulator(function: FunctionType) -> object: + """Копит результаты и отдаёт их списком при method='drop'.""" + results: list[object] = [] + + def wrapper(*args: object, method: str = "accumulate") -> list[object] | None: + """Добавляет результат; при 'drop' возвращает накопленное и очищает.""" + result: object = function(*args) + results.append(result) + if method == "drop": + accumulated: list[object] = list(results) + results.clear() + return accumulated + return None + + return wrapper + + +# ## Сортировка слиянием. +# +# - Мы уже реализовывали функцию merge, которая способна "слить" два отсортированных списка в один. +# - Чаще всего её применяют в рекурсивном алгоритме сортировки слиянием. +# - Напишите рекурсивную функцию merge_sort, которая производит сортировку списка. +# - Примечание +# - Ваше решение должно содержать только функции. +# - В решении не должно быть вызовов требуемых функций, за исключением рекурсивных. +# - Трассировка вызова рекурсивной функции в обработке ответа не учитывается и показана для примера. + + +# + +def merge_sort(arr: list[int]) -> list[int]: + """Сортирует список с помощью алгоритма сортировки слиянием.""" + if len(arr) <= 1: + return arr + mid = len(arr) // 2 + left = arr[:mid] + right = arr[mid:] + left_sorted = merge_sort(left) + right_sorted = merge_sort(right) + return merge(left_sorted, right_sorted) + + +def merge(left: list[int], right: list[int]) -> list[int]: + """Объединяет два отсортированных списка в один отсортированный.""" + result = [] + left_index = right_index = 0 + while left_index < len(left) and right_index < len(right): + if left[left_index] <= right[right_index]: + result.append(left[left_index]) + left_index += 1 + else: + result.append(right[right_index]) + right_index += 1 + while left_index < len(left): + result.append(left[left_index]) + left_index += 1 + while right_index < len(right): + result.append(right[right_index]) + right_index += 1 + return result + + +# - + +# ## Однотипность не порок. +# +# - Во многих задачах требуется контроль входных данных, в частности, несмотря на динамическую типизацию, их типов. +# - Разработайте декоратор same_type, который производит проверку переменного количества позиционных параметров. В случае получения не - одинаковых типов выводит сообщение "Обнаружены различные типы данных" и прерывает выполнение функции. +# - Примечание +# - Ваше решение должно содержать только функции. +# - В решении не должно быть вызовов требуемых функций. + +# + +_P = ParamSpec("_P") +_R = TypeVar("_R") + + +def same_type(function: Callable[_P, _R]) -> Callable[_P, Optional[_R]]: + """Проверяет, что все аргументы одного типа.""" + + def wrapper(*args: _P.args, **kwargs: _P.kwargs) -> Optional[_R]: + if len(args) > 1 and len(set(map(type, args))) > 1: + print("Обнаружены различные типы данных") + return None + return function(*args, **kwargs) + + return wrapper + + +# - + +# ## Генератор Фибоначчи. +# +# - Числа Фибоначчи весьма интересная последовательность и используется в различных математических задачах. В ней каждый следующий элемент равен сумме двух предыдущих. Математики начинают эту последовательность с двух единиц, но мы же с вами программисты, поэтому привыкли вести счет с нуля. +# - Напишите генератор fibonacci, который последовательно возвращает заданное количество чисел Фибоначчи по "правилам программистов". +# - Примечание +# - Ваше решение должно содержать только функции. +# - В решении не должно быть вызовов требуемых функций. + + +def fibonacci(n_fib: int) -> Generator[int, None, None]: + """Генерирует последовательность Фибоначчи.""" + a_fib, b_fib = 0, 1 + for _ in range(n_fib): + yield a_fib + a_fib, b_fib = b_fib, a_fib + b_fib + + +# ## Циклический генератор. +# +# - Напишите генератор cycle, который принимает список и работает аналогично итератору itertools.cycle. +# - Примечание +# - Ваше решение должно содержать только функции. +# - В решении не должно быть вызовов требуемых функций. + +# + +_Ti = TypeVar("_Ti") + + +def cycle(items: list[_Ti]) -> Iterator[_Ti]: + """Бесконечно повторяет элементы списка.""" + if not items: + return + while True: + yield from items + + +# - + +# ## "Выпрямление" списка. +# +# - Весьма часто, данные, которые мы получаем из различных источников, не удовлетворяют нашим пожеланиям. Одна из частых проблем – излишняя вложенность списков. +# - Напишите функцию make_linear, которая принимает список списков и возвращает его "выпрямленное" представление. +# - Примечание +# - Ваше решение должно содержать только функции. +# - В решении не должно быть вызовов требуемых функций, за исключением рекурсивных. +# - Трассировка вызова рекурсивной функции в обработке ответа не учитывается и показана для примера. + + +def make_linear(nested_list: list[object]) -> list[object]: + """Преобразует вложенные списки в плоский список.""" + result: list[object] = [] + for item in nested_list: + if isinstance(item, list): + result.extend(make_linear(item)) + else: + result.append(item) + return result diff --git a/python/yandex/sets_dictionaries_3_2.ipynb b/python/yandex/sets_dictionaries_3_2.ipynb new file mode 100644 index 00000000..28ded9d6 --- /dev/null +++ b/python/yandex/sets_dictionaries_3_2.ipynb @@ -0,0 +1,1185 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 4, + "id": "c273a245", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'Множества, словари.\\n\\nВ этом параграфе мы продолжим изучать коллекции —\\nно теперь познакомимся с неупорядоченными типами\\nданных. Вы узнаете, как работают множества (set) и\\nсловари (dict), чем они отличаются от списков и в \\nкаких задачах используются. Научитесь проверять, \\nсодержится ли элемент в множестве, находить пересечения \\nи разности, а также хранить и быстро получать значения \\nпо ключам. Мы разберёмся, как создавать множества и словари,\\nвыполнять над ними операции, использовать их методы и \\nприменять в реальных примерах.\\n'" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\"\"\"Множества, словари.\n", + "\n", + "В этом параграфе мы продолжим изучать коллекции —\n", + "но теперь познакомимся с неупорядоченными типами\n", + "данных. Вы узнаете, как работают множества (set) и\n", + "словари (dict), чем они отличаются от списков и в\n", + "каких задачах используются. Научитесь проверять,\n", + "содержится ли элемент в множестве, находить пересечения\n", + "и разности, а также хранить и быстро получать значения\n", + "по ключам. Мы разберёмся, как создавать множества и словари,\n", + "выполнять над ними операции, использовать их методы и\n", + "применять в реальных примерах.\n", + "\"\"\"" + ] + }, + { + "cell_type": "markdown", + "id": "df20f2f3", + "metadata": {}, + "source": [ + "## Символическая выжимка.\n", + "\n", + "- Во многих промышленных задачах требуется понять, из каких символов состоят данные, и избавиться от повторений.\n", + "- Напишите программу, которая по введённой строке выводит все её уникальные символы — без повторений.\n", + "- Формат ввода\n", + "- Вводится одна строка.\n", + "- Формат вывода\n", + "- Требуется вывести все символы этой строки без повторений.\n", + "- Порядок вывода не имеет значения." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6617245d", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "аывп\n" + ] + } + ], + "source": [ + "def symbolic_summary() -> None:\n", + " \"\"\"symbolic_summary.\"\"\"\n", + " data: set[str] = set(input())\n", + " print(*data, sep=\"\")\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " symbolic_summary()" + ] + }, + { + "cell_type": "markdown", + "id": "883b884c", + "metadata": {}, + "source": [ + "## Символическая разница.\n", + "\n", + "- Теперь нас интересует пересечение данных: какие символы одинаковы в двух разных строках?\n", + "- Такую задачу можно встретить в анализе логов, данных с датчиков или при обработке пользовательского ввода.\n", + "- Напишите программу, которая находит общие символы в двух введённых строках.\n", + "- Символы не должны повторяться в выводе.\n", + "- Формат ввода\n", + "- Вводится две строки.\n", + "- Формат вывода\n", + "- Требуется вывести все общие символы этих строк без повторений.\n", + "- Порядок вывода не имеет значения." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "0e468e39", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "f\n" + ] + } + ], + "source": [ + "def symbolic_difference() -> None:\n", + " \"\"\"symbolic_difference.\"\"\"\n", + " data_1: set[str] = set(input())\n", + " data_2: set[str] = set(input())\n", + " intersection_word: set[str] = data_1 & data_2\n", + " print(*intersection_word, sep=\"\")\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " symbolic_difference()" + ] + }, + { + "cell_type": "markdown", + "id": "87d94a28", + "metadata": {}, + "source": [ + "## Зайка — 8.\n", + "\n", + "- Мы снова наблюдаем за движением поезда — и продолжаем собирать все объекты, которые попадаются в поле зрения.\n", + "- Теперь ваша задача — собрать единый список всех увиденных объектов, независимо от того, в каких именно строках они встречались.\n", + "- Формат ввода\n", + "- В первой строке записано натуральное число N — количество выделенных придорожных местностей.\n", + "- В каждой из N последующих строк записано описание придорожной местности.\n", + "- Формат вывода\n", + "- Вывести все найденные объекты в придорожных местностях." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ed410230", + "metadata": {}, + "outputs": [], + "source": [ + "def bunny_8() -> None:\n", + " \"\"\"bunny_8.\"\"\"\n", + " count_plase: int = int(input())\n", + " object_b: set[str] = set()\n", + " for _ in range(count_plase):\n", + " name_place: list[str] = input().split()\n", + " object_b.update(name_place)\n", + " sorted_object: list[str] = sorted(object_b)\n", + " for obj in sorted_object:\n", + " print(obj)\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " bunny_8()" + ] + }, + { + "cell_type": "markdown", + "id": "d34f2df9", + "metadata": {}, + "source": [ + "## Кашееды.\n", + "\n", + "- В детском саду завели \"кашевую статистику\". Каждый ребёнок любит манную, овсяную или обе каши.Воспитателю важно быстро узнать, сколько детей обожают и ту, и другую кашу.\n", + "- Напишите программу, которая определит, сколько учеников любят обе каши.\n", + "- Формат ввода\n", + "- В первых двух строках указывается количество детей, любящих манную и овсяную каши (N и M).\n", + "- Затем идут N строк — фамилии детей, которые любят манную кашу, и M строк с фамилиями детей, любящих овсяную кашу.\n", + "- Гарантируется, что в группе нет однофамильцев.\n", + "- Формат вывода\n", + "- Количество учеников, которые любят обе каши.\n", + "- Если таких не окажется, в строке вывода нужно написать «Таких нет»." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "bd6b04d8", + "metadata": {}, + "outputs": [], + "source": [ + "def casheweds() -> None:\n", + " \"\"\"casheweds.\"\"\"\n", + " group_1: int = int(input())\n", + " group_2: int = int(input())\n", + " result_group_1: set[str] = set()\n", + " result_group_2: set[str] = set()\n", + " for _ in range(group_1):\n", + " result_group_1.update(input().split())\n", + " for _ in range(group_2):\n", + " result_group_2.update(input().split())\n", + " common_names: set[str] = result_group_1 & result_group_2\n", + " if common_names:\n", + " print(len(common_names))\n", + " else:\n", + " print(\"Таких нет\")\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " casheweds()" + ] + }, + { + "cell_type": "markdown", + "id": "3aaf61fb", + "metadata": {}, + "source": [ + "## Кашееды — 2.\n", + "\n", + "- После статистики по «любителям обеих каш» воспитателю захотелось знать другое: сколько детей любят только одну кашу — либо манную, либо овсяную, но не обе сразу.Это поможет спланировать меню так, чтобы угодить каждому!\n", + "- Формат ввода\n", + "- В первых двух строках указывается количество детей, любящих манную и овсяную каши (N и M).\n", + "- Затем идут N+M строк — перемешанные фамилии детей.\n", + "- Гарантируется, что в группе нет однофамильцев.\n", + "- Формат вывода\n", + "- Количество учеников, которые любят только одну кашу.\n", + "- Если таких не окажется, в строке вывода нужно написать «Таких нет»." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5dc623d2", + "metadata": {}, + "outputs": [], + "source": [ + "def casheweds_2() -> None:\n", + " \"\"\"casheweds_2.\"\"\"\n", + " n_cash: int = int(input())\n", + " m_cash: int = int(input())\n", + " name_count: dict[str, int] = {}\n", + " for _ in range(n_cash + m_cash):\n", + " name: str = input().strip()\n", + " name_count[name] = name_count.get(name, 0) + 1\n", + " count_only_one: int = 0\n", + " for count in name_count.values():\n", + " if count == 1:\n", + " count_only_one += 1\n", + " if count_only_one > 0:\n", + " print(count_only_one)\n", + " else:\n", + " print(\"Таких нет\")\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " casheweds_2()" + ] + }, + { + "cell_type": "markdown", + "id": "77d6a386", + "metadata": {}, + "source": [ + "## Кашееды — 3.\n", + "\n", + "- Мы уже посчитали, сколько детей любят только одну кашу. Теперь давайте выясним, кто именно это делает — и выведем их по алфавиту. Это поможет воспитателю персонально поблагодарить каждого за преданность любимому блюду.\n", + "- программу, которая позволит воспитателю узнать, какие дети любят только одну кашу.\n", + "- Формат ввода\n", + "- В первых двух строках указывается количество детей, любящих манную и овсяную каши (N и M).\n", + "- Затем идут N+M строк — перемешанные фамилии детей.\n", + "- Гарантируется, что в группе нет однофамильцев.\n", + "- Формат вывода\n", + "- В алфавитном порядке фамилии учеников, которые любят только одну кашу.\n", + "- Если таких не окажется, в строке вывода нужно написать «Таких нет»." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "38ba0faf", + "metadata": {}, + "outputs": [], + "source": [ + "def casheweds_3() -> None:\n", + " \"\"\"casheweds_3.\"\"\"\n", + " nc_cash: int = int(input())\n", + " mc_cash: int = int(input())\n", + " name_count: dict[str, int] = {}\n", + " for _ in range(nc_cash + mc_cash):\n", + " name: str = input().strip()\n", + " name_count[name] = name_count.get(name, 0) + 1\n", + " only_one_porridge: list[str] = sorted(\n", + " [name for name, count in name_count.items() if count == 1]\n", + " )\n", + " if only_one_porridge:\n", + " for name in only_one_porridge:\n", + " print(name)\n", + " else:\n", + " print(\"Таких нет\")\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " casheweds_3()" + ] + }, + { + "cell_type": "markdown", + "id": "4dd1c4ac", + "metadata": {}, + "source": [ + "## Азбука Морзе.\n", + "\n", + "- Напишите программу, которая по введённому английскому тексту кодирует каждое слово в азбуке Морзе.Каждая буква заменяется на последовательность точек и тире. В качестве тире используйте обычный дефис: -, а в качестве точки — точку .. Например, буква g превратится в трёхсимвольную строку --.. Между закодированными буквами ставится ровно один пробел. Например, слово Help превратится в .... . .-.. .--..\n", + "Обратите внимание, что строчные и заглавные буквы кодируются одинаково.\n", + "- Формат ввода\n", + "- Весь текст записан в единственной строке. Текст состоит из английских букв и пробелов, других символов в тексте нет.\n", + "- В тексте не может быть двух или более пробелов подряд.\n", + "- Формат вывода\n", + "- Выведите каждое слово исходного текста, закодированное азбукой Морзе, на отдельной строке.\n", + "- Количество строк в ответе должно совпадать с количеством слов в исходном тексте." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c2664ef9", + "metadata": {}, + "outputs": [], + "source": [ + "def morse_code() -> None:\n", + " \"\"\"morse_code.\"\"\"\n", + " text: list[str] = input().split()\n", + " words_pass: dict[str, str] = {\n", + " \"A\": \".-\",\n", + " \"B\": \"-...\",\n", + " \"C\": \"-.-.\",\n", + " \"D\": \"-..\",\n", + " \"E\": \".\",\n", + " \"F\": \"..-.\",\n", + " \"G\": \"--.\",\n", + " \"H\": \"....\",\n", + " \"I\": \"..\",\n", + " \"J\": \".---\",\n", + " \"K\": \"-.-\",\n", + " \"L\": \".-..\",\n", + " \"M\": \"--\",\n", + " \"N\": \"-.\",\n", + " \"O\": \"---\",\n", + " \"P\": \".--.\",\n", + " \"Q\": \"--.-\",\n", + " \"R\": \".-.\",\n", + " \"S\": \"...\",\n", + " \"T\": \"-\",\n", + " \"U\": \"..-\",\n", + " \"V\": \"...-\",\n", + " \"W\": \".--\",\n", + " \"X\": \"-..-\",\n", + " \"Y\": \"-.--\",\n", + " \"Z\": \"--..\",\n", + " \"0\": \"-----\",\n", + " \"1\": \".----\",\n", + " \"2\": \"..---\",\n", + " \"3\": \"...--\",\n", + " \"4\": \"....-\",\n", + " \"5\": \".....\",\n", + " \"6\": \"-....\",\n", + " \"7\": \"--...\",\n", + " \"8\": \"---..\",\n", + " \"9\": \"----.\",\n", + " }\n", + " for word in text:\n", + " morse_word: list[str] = []\n", + " for char in word:\n", + " upper_char: str = char.upper()\n", + " if upper_char in words_pass:\n", + " morse_word.append(words_pass[upper_char])\n", + " print(\" \".join(morse_word))\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " morse_code()" + ] + }, + { + "cell_type": "markdown", + "id": "a5b3ecd5", + "metadata": {}, + "source": [ + "## Кашееды — 4.\n", + "\n", + "- Каждый воспитанник детского сада может любить одну или несколько каш. Воспитателю нужно быстро получить список фамилий тех, кто любит определённый вид каши.\n", + "- Напишите программу, которая по списку учеников и их любимых каш определяет, кто именно любит заданную кашу.\n", + "- Формат ввода\n", + "- В первой строке задаётся количество детей в группе (N).\n", + "- В следующих N строках записана фамилия ребенка и список его любимых каш.\n", + "- В последней строке записана каша, информацию о которой хочет получить воспитатель.\n", + "- Формат вывода\n", + "- Фамилии учеников, которые любят заданную кашу, в алфавитном порядке.\n", + "- Если таких не окажется, в строке вывода нужно написать «Таких нет»." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7733cc14", + "metadata": {}, + "outputs": [], + "source": [ + "def casheweds_4() -> None:\n", + " \"\"\"casheweds_4.\"\"\"\n", + " count_children: int = int(input())\n", + " children_porridge: dict[str, set[str]] = {}\n", + " for _ in range(count_children):\n", + " par: list[str] = input().split()\n", + " surname: str = par[0]\n", + " porriges: set[str] = set(par[1:])\n", + " children_porridge[surname] = porriges\n", + " target_porridge: str = input().strip()\n", + " loving_porridge: list[str] = []\n", + " for surname, porriges in children_porridge.items():\n", + " if target_porridge in porriges:\n", + " loving_porridge.append(surname)\n", + " loving_porridge.sort()\n", + " if loving_porridge:\n", + " for surname in loving_porridge:\n", + " print(surname)\n", + " else:\n", + " print(\"Таких нет\")\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " casheweds_4()" + ] + }, + { + "cell_type": "markdown", + "id": "151c3687", + "metadata": {}, + "source": [ + "## Зайка — 9.\n", + "\n", + "- Поможем детям подсчитать, сколько животных и деревьев каждого вида встречается за окном поезда.\n", + "- Напишите программу, которая по текстовому описанию местности подсчитывает, сколько раз каждое слово встречается во входных данных.\n", + "- Формат ввода\n", + "- В каждой строке записано описание придорожной местности.\n", + "- Конец ввода обозначается пустой строкой.\n", + "- Формат вывода\n", + "- Список увиденного и их количество.\n", + "- Порядок вывода не имеет значения." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b7e3d78a", + "metadata": {}, + "outputs": [], + "source": [ + "def bunny_9() -> None:\n", + " \"\"\"bunny_9.\"\"\"\n", + " counter: dict[str, int] = {}\n", + " while True:\n", + " line_bu: str = input().strip()\n", + " if line_bu == \"\":\n", + " break\n", + " words: list[str] = line_bu.split()\n", + " for word in words:\n", + " if word not in counter:\n", + " counter[word] = 1\n", + " else:\n", + " counter[word] += 1\n", + " for description, count in counter.items():\n", + " print(f\"{description} {count}\")\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " bunny_9()" + ] + }, + { + "cell_type": "markdown", + "id": "2a541dd9", + "metadata": {}, + "source": [ + "## Транслитерация.\n", + "\n", + "- Для международных документов русский текст преобразуется с использованием латинского алфавита. ГОСТ Р 52535.1-2006 задаёт правила идентификационных карт.\n", + "- Ниже приведена таблица замен:\n", + "- А — A\n", + "- Б — B\n", + "- В — V\n", + "- Г — G\n", + "- Д — D\n", + "- Е — E\n", + "- Ё — E\n", + "- Ж — ZH\n", + "- З — Z\n", + "- И — I\n", + "- Й — I\n", + "- К — K\n", + "- Л — L\n", + "- М — M\n", + "- Н — N\n", + "- О — O\n", + "- П — P\n", + "- Р — R\n", + "- С — S\n", + "- Т — T\n", + "- У — U\n", + "- Ф — F\n", + "- Х — KH\n", + "- Ц — TC\n", + "- Ч — CH\n", + "- Ш — SH\n", + "- Щ — SHCH\n", + "- Ы — Y\n", + "- Э — E\n", + "- Ю — IU\n", + "- Я — IA\n", + "- Давайте транслитерируем русский текст.\n", + "- Букву «ё» транслитерируйте как «e», «й» как «и», а «ъ» и «ь» (и их заглавные версии «Ъ» и «Ь») должны исчезнуть из текста. Строчные буквы заменяются на строчные, заглавные заменяются на заглавные. Если заглавная буква превращается при транслитерации в несколько букв, то заглавной должна остаться только первая из них (например, «Ц» → «Tc»). Все некириллические символы должны остаться на месте.\n", + "- Формат ввода\n", + "- В единственной строке задан русский текст. Текст может состоять из любых символов. Вам необходимо транслитерировать только русские буквы, а остальные оставить на месте. Гарантируется, что нет слов, состоящих только из букв «ъ» и «ь»." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f5804ba5", + "metadata": {}, + "outputs": [], + "source": [ + "def transliteration() -> None:\n", + " \"\"\"transliteration.\"\"\"\n", + " translit_dict: dict[str, str] = {\n", + " \"А\": \"A\",\n", + " \"Б\": \"B\",\n", + " \"В\": \"V\",\n", + " \"Г\": \"G\",\n", + " \"Д\": \"D\",\n", + " \"Е\": \"E\",\n", + " \"Ё\": \"E\",\n", + " \"Ж\": \"Zh\",\n", + " \"З\": \"Z\",\n", + " \"И\": \"I\",\n", + " \"Й\": \"I\",\n", + " \"К\": \"K\",\n", + " \"Л\": \"L\",\n", + " \"М\": \"M\",\n", + " \"Н\": \"N\",\n", + " \"О\": \"O\",\n", + " \"П\": \"P\",\n", + " \"Р\": \"R\",\n", + " \"С\": \"S\",\n", + " \"Т\": \"T\",\n", + " \"У\": \"U\",\n", + " \"Ф\": \"F\",\n", + " \"Х\": \"Kh\",\n", + " \"Ц\": \"Tc\",\n", + " \"Ч\": \"Ch\",\n", + " \"Ш\": \"Sh\",\n", + " \"Щ\": \"Shch\",\n", + " \"Ы\": \"Y\",\n", + " \"Э\": \"E\",\n", + " \"Ю\": \"Iu\",\n", + " \"Я\": \"Ia\",\n", + " \"а\": \"a\",\n", + " \"б\": \"b\",\n", + " \"в\": \"v\",\n", + " \"г\": \"g\",\n", + " \"д\": \"d\",\n", + " \"е\": \"e\",\n", + " \"ё\": \"e\",\n", + " \"ж\": \"zh\",\n", + " \"з\": \"z\",\n", + " \"и\": \"i\",\n", + " \"й\": \"i\",\n", + " \"к\": \"k\",\n", + " \"л\": \"l\",\n", + " \"м\": \"m\",\n", + " \"н\": \"n\",\n", + " \"о\": \"o\",\n", + " \"п\": \"p\",\n", + " \"р\": \"r\",\n", + " \"с\": \"s\",\n", + " \"т\": \"t\",\n", + " \"у\": \"u\",\n", + " \"ф\": \"f\",\n", + " \"х\": \"kh\",\n", + " \"ц\": \"tc\",\n", + " \"ч\": \"ch\",\n", + " \"ш\": \"sh\",\n", + " \"щ\": \"shch\",\n", + " \"ы\": \"y\",\n", + " \"э\": \"e\",\n", + " \"ю\": \"iu\",\n", + " \"я\": \"ia\",\n", + " }\n", + "\n", + " with open(\"cyrillic.txt\", encoding=\"utf-8\") as file:\n", + " text: str = file.read()\n", + "\n", + " result_trans: list[str] = []\n", + " for char in text:\n", + " if char in translit_dict:\n", + " replacement: str = translit_dict[char]\n", + " if char.isupper() and len(replacement) > 1:\n", + " replacement = replacement[0].upper() + replacement[1:].lower()\n", + " result_trans.append(replacement)\n", + " elif char in [\"Ъ\", \"Ь\", \"ъ\", \"ь\"]:\n", + " continue\n", + " else:\n", + " result_trans.append(char)\n", + " with open(\"transliteration.txt\", \"w\", encoding=\"utf-8\") as output_file:\n", + " output_file.write(\"\".join(result_trans))\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " transliteration()" + ] + }, + { + "cell_type": "markdown", + "id": "06fe428e", + "metadata": {}, + "source": [ + "## Однофамильцы.\n", + "\n", + "- Начальник кадровой службы хочет выяснить, сколько мужчин-однофамильцев работает в организации. У него есть список фамилий, и на его основании требуется определить количество сотрудников, чьи фамилии совпадают хотя бы с одной другой.\n", + "- Напишите программу, которая по списку фамилий сотрудников подсчитывает общее число однофамильцев — то есть людей, чья фамилия в списке встречается более одного раза.\n", + "- Формат ввода\n", + "- В первой строке указывается количество мужчин — сотрудников организации (N).\n", + "- Затем идут N строк с фамилиями этих сотрудников в произвольном порядке.\n", + "- Формат вывода\n", + "- Количество однофамильцев в организации." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "de81017f", + "metadata": {}, + "outputs": [], + "source": [ + "def namesakes() -> None:\n", + " \"\"\"namesakes.\"\"\"\n", + " coll_surname: int = int(input())\n", + " counter: dict[str, int] = {}\n", + " for _ in range(coll_surname):\n", + " surname: str = input().strip()\n", + " if surname in counter:\n", + " counter[surname] += 1\n", + " else:\n", + " counter[surname] = 1\n", + " total_namesakes: int = 0\n", + " for count in counter.values():\n", + " if count > 1:\n", + " total_namesakes += count\n", + " print(total_namesakes)\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " namesakes()" + ] + }, + { + "cell_type": "markdown", + "id": "1b4fc57d", + "metadata": {}, + "source": [ + "## Однофамильцы — 2.\n", + "\n", + "- Вновь поможем сотруднику отдела кадров выяснить, сколько мужчин-однофамильцев работает в организации — теперь с более подробным отчётом.\n", + "- Напишите программу, которая по списку фамилий сотрудников выводит список всех однофамильцев (тех, чьи фамилии встречаются более одного раза), а также количество их повторений.\n", + "- Формат ввода\n", + "- В первой строке указывается количество мужчин — сотрудников организации (N).\n", + "- Затем идут N строк с фамилиями этих сотрудников в произвольном порядке.\n", + "- Формат вывода\n", + "- Список однофамильцев в организации с указанием их количества в алфавитном порядке. Если таковых нет — вывести «Однофамильцев нет»." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "eb6951e4", + "metadata": {}, + "outputs": [ + { + "ename": "SyntaxError", + "evalue": "invalid syntax (1885169875.py, line 1)", + "output_type": "error", + "traceback": [ + " \u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[3]\u001b[39m\u001b[32m, line 1\u001b[39m\n\u001b[31m \u001b[39m\u001b[31mdef\u001b[39m\n ^\n\u001b[31mSyntaxError\u001b[39m\u001b[31m:\u001b[39m invalid syntax\n" + ] + } + ], + "source": [ + "def namesakes_2() -> None:\n", + " \"\"\"namesakes_2.\"\"\"\n", + " coll_surname: int = int(input())\n", + " counter: dict[str, int] = {}\n", + " for _ in range(coll_surname):\n", + " surname: str = input().strip()\n", + " if surname in counter:\n", + " counter[surname] += 1\n", + " else:\n", + " counter[surname] = 1\n", + " namesakes_lst: list[tuple[str, int]] = []\n", + " for surname, count in counter.items():\n", + " if count > 1:\n", + " namesakes_lst.append((surname, count))\n", + " namesakes_lst.sort()\n", + " if namesakes_lst:\n", + " for surname, count in namesakes_lst:\n", + " print(f\"{surname} - {count}\")\n", + " else:\n", + " print(\"Однофамильцев нет\")\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " namesakes_2()" + ] + }, + { + "cell_type": "markdown", + "id": "f1b4510c", + "metadata": {}, + "source": [ + "## Дайте чего-нибудь новенького!\n", + "\n", + "- Главный повар детского сада готовит меню на праздник и хочет выбрать блюда, которые ни разу не подавались на этой неделе.\n", + "- В его распоряжении есть список блюд:\n", + "\n", + "- которые можно приготовить в столовой сегодня;\n", + "- которые были приготовлены в каждый из дней недели.\n", + "\n", + "- Напишите программу, которая по списку доступных сегодня блюд и истории приготовления на неделе определяет, что из этого можно приготовить нового.\n", + "- Формат ввода\n", + "- Число блюд (N), которые можно приготовить в столовой. N строк с названиями блюд.\n", + "- Число дней (M), о которых имеется информация. M блоков строк для каждого из списков.\n", + "- В первой строке каждого блока записано число блюд в заданный день, затем перечисляются эти блюда.\n", + "- Формат вывода\n", + "- Список блюд, которые ещё не готовились на этой неделе в алфавитном порядке.\n", + "- Если все возможные блюда уже были приготовлены, следует вывести «Готовить нечего»." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a554837c", + "metadata": {}, + "outputs": [], + "source": [ + "def give_me_something_new() -> None:\n", + " \"\"\"give_me_something_new.\"\"\"\n", + " n_give: int = int(input())\n", + " all_dishes: set[str] = set()\n", + " for _ in range(n_give):\n", + " dish: str = input().strip()\n", + " all_dishes.add(dish)\n", + " number_days: int = int(input())\n", + " cooked_dishes: set[str] = set()\n", + " for _ in range(number_days):\n", + " k_give: int = int(input())\n", + " for _ in range(k_give):\n", + " dish_2: str = input().strip()\n", + " cooked_dishes.add(dish_2)\n", + " not_cooked: set[str] = all_dishes - cooked_dishes\n", + " sot_result: list[str] = sorted(not_cooked)\n", + " if sot_result:\n", + " for dish in sot_result:\n", + " print(dish)\n", + " else:\n", + " print(\"Готовить нечего\")\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " give_me_something_new()" + ] + }, + { + "cell_type": "markdown", + "id": "5a755059", + "metadata": {}, + "source": [ + "## Это будет шедевр!\n", + "\n", + "- Главный повар детского сада хочет быстрее определять, какие блюда можно приготовить на обед. У него есть список доступных продуктов и список рецептов.\n", + "- Напишите программу, которая по списку имеющихся продуктов и рецептам определяет, какие блюда можно приготовить.\n", + "- Формат ввода \n", + "- Число продуктов (N), которые имеются в наличии. N строк с названиями продуктов.\n", + "- Число рецептов (M), о которых имеется информация.M блоков строк для каждого из рецептов.\n", + "- В первой строке каждого блока записано название блюда.\n", + "- Во второй — число ингредиентов.\n", + "- Затем перечисляются сами ингредиенты, требуемые для приготовления блюда.\n", + "- Формат вывода\n", + "- Список блюд, которые можно приготовить в алфавитном порядке.\n", + "- Если ни одно из блюд нельзя приготовить, следует вывести «Готовить нечего»." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "98e0bce8", + "metadata": {}, + "outputs": [], + "source": [ + "def masterpiece() -> None:\n", + " \"\"\"masterpiece.\"\"\"\n", + " num_product: int = int(input())\n", + " all_product: set[str] = set()\n", + " for _ in range(num_product):\n", + " product: str = input().strip()\n", + " all_product.add(product)\n", + " number_recipes: int = int(input())\n", + " cooked_dishes: list[str] = []\n", + " for _ in range(number_recipes):\n", + " name_dish: str = input().strip()\n", + " number_ingred: int = int(input())\n", + " ingredients: set[str] = set()\n", + " for _ in range(number_ingred):\n", + " ingredient: str = input().strip()\n", + " ingredients.add(ingredient)\n", + " if ingredients <= all_product:\n", + " cooked_dishes.append(name_dish)\n", + " cooked_dishes.sort()\n", + " if cooked_dishes:\n", + " for dish in cooked_dishes:\n", + " print(dish)\n", + " else:\n", + " print(\"Готовить нечего\")\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " masterpiece()" + ] + }, + { + "cell_type": "markdown", + "id": "1bd4aa25", + "metadata": {}, + "source": [ + "## Двоичная статистика!\n", + "\n", + "- У программистов особые отношения с двоичной системой счисления — ведь именно в ней работает вся цифровая техника. Продолжим тренировки в статистической обработке данных и научимся анализировать числа с позиции их представления в двоичной системе.\n", + "- Напишите программу, которая по списку целых чисел определяет:\n", + "- количество разрядов;\n", + "- количество единиц;\n", + "- количество нулей.\n", + "- Формат ввода\n", + "- Вводится последовательность чисел, записанных через пробел.\n", + "- Формат вывода\n", + "- Вывести список словарей с требуемой статистикой.\n", + "- Примечание\n", + "- Вывод в примерах отформатирован только для визуальной наглядности.\n", + "- Все пробельные символы при проверке игнорируются.\n", + "- Порядок словарей обязан совпадать с порядком переданных чисел.\n", + "- Порядок ключей в словаре не имеет значения." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2fae47da", + "metadata": {}, + "outputs": [], + "source": [ + "def binary_statistics() -> None:\n", + " \"\"\"binary_statistics.\"\"\"\n", + " numbers: list[str] = input().split()\n", + " result_bin: list[dict[str, int]] = []\n", + " for num in numbers:\n", + " binary_str: str = bin(int(num))[2:]\n", + " digits: int = len(binary_str)\n", + " units: int = binary_str.count(\"1\")\n", + " zeros: int = binary_str.count(\"0\")\n", + " stats: dict[str, int] = {\"digits\": digits, \"units\": units, \"zeros\": zeros}\n", + " result_bin.append(stats)\n", + " print(\"[\")\n", + " for i, stats in enumerate(result_bin):\n", + " print(\" {\")\n", + " print(f' \"digits\": {stats[\"digits\"]},')\n", + " print(f' \"units\": {stats[\"units\"]},')\n", + " print(f' \"zeros\": {stats[\"zeros\"]}')\n", + " if i < len(result_bin) - 1:\n", + " print(\" },\")\n", + " else:\n", + " print(\" }\")\n", + " print(\"]\")\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " binary_statistics()" + ] + }, + { + "cell_type": "markdown", + "id": "fc8c6a12", + "metadata": {}, + "source": [ + "## Зайка — 10.\n", + "\n", + "- Дети в поезде снова играют в любимую игру — считать зверей за окном. На этот раз их заинтересовало, что находится рядом с зайками. Поможем им разобраться!\n", + "- Напишите программу, которая по описанию придорожной местности находит все объекты, стоящие рядом с зайками — слева или справа от слова зайка.\n", + "- Формат ввода\n", + "- В каждой записано описание придорожной местности.\n", + "- Конец ввода обозначается пустой строкой.\n", + "- Формат вывода\n", + "- Определите список увиденного рядом с зайками без повторений.\n", + "- Порядок вывода не имеет значения.\n", + "- Примечание\n", + "- Считается, что объект находится рядом, если он записан справа или слева от требуемого." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "034e0cef", + "metadata": {}, + "outputs": [], + "source": [ + "def bunny_10() -> None:\n", + " \"\"\"bunny_10.\"\"\"\n", + " objects: set[str] = set()\n", + " while True:\n", + " line_string: str = input().strip()\n", + " if line_string == \"\":\n", + " break\n", + " words: list[str] = line_string.split()\n", + " for i, word in enumerate(words):\n", + " if word == \"зайка\":\n", + " if i > 0:\n", + " objects.add(words[i - 1])\n", + " if i < len(words) - 1:\n", + " objects.add(words[i + 1])\n", + " if objects:\n", + " for obj in sorted(objects):\n", + " print(obj)\n", + " else:\n", + " print(\"\")\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " bunny_10()" + ] + }, + { + "cell_type": "markdown", + "id": "5e015612", + "metadata": {}, + "source": [ + "## Друзья друзей.\n", + "\n", + "- Теория шести рукопожатий гласит, что любые два человека на планете могут быть связаны друг с другом через максимум шесть знакомых. Но мы не будем идти так далеко — давайте ограничимся двумя уровнями знакомства.\n", + "- Напишите программу, которая по списку пар друзей для каждого человека определяет список его друзей второго уровня — то есть друзей его друзей, исключая его самого и его непосредственных друзей.\n", + "- Формат ввода\n", + "- В каждой строке записывается два имени.\n", + "- Окончанием ввода служит пустая строка.\n", + "- Формат вывода\n", + "- Выведите список всех людей и их «друзей 2-го уровня» в формате «Человек: Друг1, Друг2, ...».\n", + "- Список людей и друзей в каждой строке требуется вывести в алфавитном порядке без повторений." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8630a211", + "metadata": {}, + "outputs": [], + "source": [ + "def friends_of_friends() -> None:\n", + " \"\"\"friends_of_friends.\"\"\"\n", + "\n", + "\n", + "friends: dict[str, set[str]] = {}\n", + "while True:\n", + " line: str = input().strip()\n", + " if line == \"\":\n", + " break\n", + " person1: str\n", + " person2: str\n", + " person1, person2 = line.split()\n", + " if person1 not in friends:\n", + " friends[person1] = set()\n", + " if person2 not in friends:\n", + " friends[person2] = set()\n", + " friends[person1].add(person2)\n", + " friends[person2].add(person1)\n", + "sorted_people = sorted(friends.keys())\n", + "for person in sorted_people:\n", + " second_level: set[str] = set()\n", + " for friend in friends[person]:\n", + " second_level.update(friends[friend])\n", + " second_level.discard(person)\n", + " for friend in friends[person]:\n", + " second_level.discard(friend)\n", + " sorted_second_level: list[str] = sorted(second_level)\n", + " if sorted_second_level:\n", + " result: str = \", \".join(sorted_second_level)\n", + " print(f\"{person}: {result}\")\n", + " else:\n", + " print(f\"{person}: \")\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " friends_of_friends()" + ] + }, + { + "cell_type": "markdown", + "id": "8bd8a69c", + "metadata": {}, + "source": [ + "## Карта сокровищ.\n", + "\n", + "- На пиратской карте отмечено множество точек, в которых, по слухам, зарыты сокровища. Каждая точка задана координатами (xi,yi) в километрах. Капитан Крюк хочет собрать как можно больше кладов за один маршрут. Однако есть ограничение: между двумя соседними точками маршрута можно перемещаться только в том случае, если координаты этих точек различаются только последней цифрой — как по оси x, так и по оси y.\n", + "- Например:\n", + "- Из точки (15, 10) можно попасть в (18, 16) — координаты отличаются только последней цифрой (5 → 8 и 0 → 6). Но из (14, 68) в (19, 71) попасть нельзя, потому что десятки и сотни отличаются. Также нельзя попасть из (5, 12) в (13, 14), так как 5 и 13 различаются не только в последнем разряде. Напишите программу, которая по списку координат точек определяет, какое максимальное количество точек может входить в маршрут Капитана Крюка, построенный по описанному правилу.\n", + "- Формат ввода\n", + "- В первой строке указано число N(1≤N≤10**5) — количество точек, отмеченных на карте сокровищ.\n", + "- В следующих N строках содержатся пары координат: xi и yi — координаты i-ой точки.\n", + "- Координаты — целые числа не меньше нуля и не больше 10**9.\n", + "- Гарантируется, что совпадающих точек в списке нет.\n", + "- Формат вывода\n", + "- Выведите одно число — максимальное количество точек, которое Капитан Крюк сможет посетить по маршруту, построенному по описанным правилам." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "43c13768", + "metadata": {}, + "outputs": [], + "source": [ + "def treasure_map() -> None:\n", + " \"\"\"treasure_map.\"\"\"\n", + " n_map: int = int(input())\n", + " groups: dict[tuple[int, int], int] = {}\n", + " for _ in range(n_map):\n", + " x_map, y_map = map(int, input().split())\n", + " group_x: int = x_map // 10\n", + " group_y: int = y_map // 10\n", + " group_key: tuple[int, int] = (group_x, group_y)\n", + " if group_key not in groups:\n", + " groups[group_key] = 0\n", + " groups[group_key] += 1\n", + " max_count: int = 0\n", + " for count in groups.values():\n", + " max_count = max(max_count, count)\n", + " print(max_count)\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " treasure_map()" + ] + }, + { + "cell_type": "markdown", + "id": "1d63434c", + "metadata": {}, + "source": [ + "## Частная собственность.\n", + "\n", + "- Ребята приносят игрушки в детский сад и играют все вместе. Сегодня они решили выяснить, игрушки какого типа принадлежат только одному из детей.\n", + "- Напишите программу, которая по списку детей и их игрушек определяет список игрушек, которые есть только у одного ребёнка. Выведите их в алфавитном порядке.\n", + "- Формат ввода\n", + "- В первой строке задается количество детей в группе (N).\n", + "- В каждой из следующих N строк записано имя ребенка и его игрушки в формате:\n", + "- Имя: игрушка1, игрушка2, ....\n", + "- Формат вывода\n", + "- Список игрушек, которые есть только у одного из детей в алфавитном порядке." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f7c58d4a", + "metadata": {}, + "outputs": [], + "source": [ + "def private_property() -> None:\n", + " \"\"\"private_property.\"\"\"\n", + " n_private: int = int(input())\n", + " toy_to_children: dict[str, set[str]] = {}\n", + " for _ in range(n_private):\n", + " line_str: str = input().strip()\n", + " parts: list[str] = line_str.split(\": \")\n", + " name: str = parts[0]\n", + " toys: list[str] = parts[1].split(\", \")\n", + " for toy in toys:\n", + " toy = toy.strip()\n", + " if toy not in toy_to_children:\n", + " toy_to_children[toy] = set()\n", + " toy_to_children[toy].add(name)\n", + " unique_toys: list[str] = []\n", + " for toy, children in toy_to_children.items():\n", + " if len(children) == 1:\n", + " unique_toys.append(toy)\n", + " unique_toys.sort()\n", + " for toy in unique_toys:\n", + " print(toy)\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " private_property()" + ] + }, + { + "cell_type": "markdown", + "id": "41b6276c", + "metadata": {}, + "source": [ + "## Простая задача 4.0.\n", + "\n", + "- Вы проделали отличную работу и дошли до конца — впереди последняя, двадцатая задача. Она не простая, но вы уже вооружены знаниями о множествах, словарях и алгоритмах.\n", + "- Напомним, что взаимно простыми называются числа, которые не имеют общих делителей, кроме 1.\n", + "- Напишите программу, которая:\n", + "- получает список чисел, разделённых точкой с запятой и пробелом;\n", + "- для каждого числа определяет, с какими другими числами оно взаимно просто;\n", + "- выводит результат в порядке возрастания чисел без повторений;\n", + "- если для числа не найдено ни одного взаимно простого числа — его не нужно выводить вовсе.\n", + "- Формат ввода\n", + "- Задана последовательность чисел записанных через точку с запятой (;) и пробел.\n", + "- Формат вывода\n", + "- Список чисел с указанием взаимно простых ему среди переданных.\n", + "- Все числа должны быть выведены в порядке возрастания без повторений.\n", + "- Строки следует отформатировать по правилу: число - взаимно простое 1, взаимно простое 2, ...\n", + "- Если для числа не было найдено ни одного взаимно простого, то и выводить его не требуется." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "de903ab7", + "metadata": {}, + "outputs": [], + "source": [ + "def simple_task_4() -> None:\n", + " \"\"\"simple_task_4.\"\"\"\n", + " input_string: str = input().strip()\n", + " if input_string.endswith(\".\"):\n", + " input_string = input_string[:-1]\n", + " numbers: list[int] = list(map(int, input_string.split(\"; \")))\n", + " unique_numers: list[int] = sorted(set(numbers))\n", + " coprime_dict: dict[int, list[int]] = {}\n", + " for i_simple, a_simple in enumerate(unique_numers):\n", + " for j_simple in range(i_simple + 1, len(unique_numers)):\n", + " b_simple: int = unique_numers[j_simple]\n", + " num_1: int = a_simple\n", + " num_2: int = b_simple\n", + " while num_2 != 0:\n", + " num_1, num_2 = num_2, num_1 % num_2\n", + "\n", + " if num_1 == 1:\n", + " if a_simple not in coprime_dict:\n", + " coprime_dict[a_simple] = []\n", + " coprime_dict[a_simple].append(b_simple)\n", + " if b_simple not in coprime_dict:\n", + " coprime_dict[b_simple] = []\n", + " coprime_dict[b_simple].append(a_simple)\n", + "\n", + " for num, coprime_list in coprime_dict.items():\n", + " coprime_list.sort()\n", + " for num, coprime_list in sorted(coprime_dict.items()):\n", + " result_string: str = \", \".join(map(str, coprime_list))\n", + " print(f\"{num} - {result_string}\")" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.12" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/python/yandex/sets_dictionaries_3_2.py b/python/yandex/sets_dictionaries_3_2.py new file mode 100644 index 00000000..ad4768e2 --- /dev/null +++ b/python/yandex/sets_dictionaries_3_2.py @@ -0,0 +1,927 @@ +"""Множества, словари. + +В этом параграфе мы продолжим изучать коллекции — но теперь познакомимся с +неупорядоченными типами данных. Вы узнаете, как работают множества (set) и словари (dict), +чем они отличаются от списков и в каких задачах используются. Научитесь проверять, +содержится ли элемент в множестве, находить пересечения и разности, а также хранить и +быстро получать значения по ключам. Мы разберёмся, как создавать множества и словари, +выполнять над ними операции, использовать их методы и применять в реальных примерах. +""" + +# ## Символическая выжимка. +# +# - Во многих промышленных задачах требуется понять, из каких символов состоят данные, и избавиться от повторений. +# - Напишите программу, которая по введённой строке выводит все её уникальные символы — без повторений. +# - Формат ввода +# - Вводится одна строка. +# - Формат вывода +# - Требуется вывести все символы этой строки без повторений. +# - Порядок вывода не имеет значения. + + +# + +def symbolic_summary() -> None: + """symbolic_summary.""" + data: set[str] = set(input()) + print(*data, sep="") + + +if __name__ == "__main__": + symbolic_summary() + + +# - + +# ## Символическая разница. +# +# - Теперь нас интересует пересечение данных: какие символы одинаковы в двух разных строках? +# - Такую задачу можно встретить в анализе логов, данных с датчиков или при обработке пользовательского ввода. +# - Напишите программу, которая находит общие символы в двух введённых строках. +# - Символы не должны повторяться в выводе. +# - Формат ввода +# - Вводится две строки. +# - Формат вывода +# - Требуется вывести все общие символы этих строк без повторений. +# - Порядок вывода не имеет значения. + + +# + +def symbolic_difference() -> None: + """symbolic_difference.""" + data_1: set[str] = set(input()) + data_2: set[str] = set(input()) + intersection_word: set[str] = data_1 & data_2 + print(*intersection_word, sep="") + + +if __name__ == "__main__": + symbolic_difference() + + +# - + +# ## Зайка — 8. +# +# - Мы снова наблюдаем за движением поезда — и продолжаем собирать все объекты, которые попадаются в поле зрения. +# - Теперь ваша задача — собрать единый список всех увиденных объектов, независимо от того, в каких именно строках они встречались. +# - Формат ввода +# - В первой строке записано натуральное число N — количество выделенных придорожных местностей. +# - В каждой из N последующих строк записано описание придорожной местности. +# - Формат вывода +# - Вывести все найденные объекты в придорожных местностях. + + +# + +def bunny_8() -> None: + """bunny_8.""" + count_plase: int = int(input()) + object_b: set[str] = set() + for _ in range(count_plase): + name_place: list[str] = input().split() + object_b.update(name_place) + sorted_object: list[str] = sorted(object_b) + for obj in sorted_object: + print(obj) + + +if __name__ == "__main__": + bunny_8() + + +# - + +# ## Кашееды. +# +# - В детском саду завели "кашевую статистику". Каждый ребёнок любит манную, овсяную или обе каши.Воспитателю важно быстро узнать, сколько детей обожают и ту, и другую кашу. +# - Напишите программу, которая определит, сколько учеников любят обе каши. +# - Формат ввода +# - В первых двух строках указывается количество детей, любящих манную и овсяную каши (N и M). +# - Затем идут N строк — фамилии детей, которые любят манную кашу, и M строк с фамилиями детей, любящих овсяную кашу. +# - Гарантируется, что в группе нет однофамильцев. +# - Формат вывода +# - Количество учеников, которые любят обе каши. +# - Если таких не окажется, в строке вывода нужно написать «Таких нет». + + +# + +def casheweds() -> None: + """casheweds.""" + group_1: int = int(input()) + group_2: int = int(input()) + result_group_1: set[str] = set() + result_group_2: set[str] = set() + for _ in range(group_1): + result_group_1.update(input().split()) + for _ in range(group_2): + result_group_2.update(input().split()) + common_names: set[str] = result_group_1 & result_group_2 + if common_names: + print(len(common_names)) + else: + print("Таких нет") + + +if __name__ == "__main__": + casheweds() + + +# - + +# ## Кашееды — 2. +# +# - После статистики по «любителям обеих каш» воспитателю захотелось знать другое: сколько детей любят только одну кашу — либо манную, либо овсяную, но не обе сразу.Это поможет спланировать меню так, чтобы угодить каждому! +# - Формат ввода +# - В первых двух строках указывается количество детей, любящих манную и овсяную каши (N и M). +# - Затем идут N+M строк — перемешанные фамилии детей. +# - Гарантируется, что в группе нет однофамильцев. +# - Формат вывода +# - Количество учеников, которые любят только одну кашу. +# - Если таких не окажется, в строке вывода нужно написать «Таких нет». + + +# + +def casheweds_2() -> None: + """casheweds_2.""" + n_cash: int = int(input()) + m_cash: int = int(input()) + name_count: dict[str, int] = {} + for _ in range(n_cash + m_cash): + name: str = input().strip() + name_count[name] = name_count.get(name, 0) + 1 + count_only_one: int = 0 + for count in name_count.values(): + if count == 1: + count_only_one += 1 + if count_only_one > 0: + print(count_only_one) + else: + print("Таких нет") + + +if __name__ == "__main__": + casheweds_2() + + +# - + +# ## Кашееды — 3. +# +# - Мы уже посчитали, сколько детей любят только одну кашу. Теперь давайте выясним, кто именно это делает — и выведем их по алфавиту. Это поможет воспитателю персонально поблагодарить каждого за преданность любимому блюду. +# - программу, которая позволит воспитателю узнать, какие дети любят только одну кашу. +# - Формат ввода +# - В первых двух строках указывается количество детей, любящих манную и овсяную каши (N и M). +# - Затем идут N+M строк — перемешанные фамилии детей. +# - Гарантируется, что в группе нет однофамильцев. +# - Формат вывода +# - В алфавитном порядке фамилии учеников, которые любят только одну кашу. +# - Если таких не окажется, в строке вывода нужно написать «Таких нет». + + +# + +def casheweds_3() -> None: + """casheweds_3.""" + nc_cash: int = int(input()) + mc_cash: int = int(input()) + name_count: dict[str, int] = {} + for _ in range(nc_cash + mc_cash): + name: str = input().strip() + name_count[name] = name_count.get(name, 0) + 1 + only_one_porridge: list[str] = sorted( + [name for name, count in name_count.items() if count == 1] + ) + if only_one_porridge: + for name in only_one_porridge: + print(name) + else: + print("Таких нет") + + +if __name__ == "__main__": + casheweds_3() + + +# - + +# ## Азбука Морзе. +# +# - Напишите программу, которая по введённому английскому тексту кодирует каждое слово в азбуке Морзе.Каждая буква заменяется на последовательность точек и тире. В качестве тире используйте обычный дефис: -, а в качестве точки — точку .. Например, буква g превратится в трёхсимвольную строку --.. Между закодированными буквами ставится ровно один пробел. Например, слово Help превратится в .... . .-.. .--.. +# Обратите внимание, что строчные и заглавные буквы кодируются одинаково. +# - Формат ввода +# - Весь текст записан в единственной строке. Текст состоит из английских букв и пробелов, других символов в тексте нет. +# - В тексте не может быть двух или более пробелов подряд. +# - Формат вывода +# - Выведите каждое слово исходного текста, закодированное азбукой Морзе, на отдельной строке. +# - Количество строк в ответе должно совпадать с количеством слов в исходном тексте. + + +# + +def morse_code() -> None: + """morse_code.""" + text: list[str] = input().split() + words_pass: dict[str, str] = { + "A": ".-", + "B": "-...", + "C": "-.-.", + "D": "-..", + "E": ".", + "F": "..-.", + "G": "--.", + "H": "....", + "I": "..", + "J": ".---", + "K": "-.-", + "L": ".-..", + "M": "--", + "N": "-.", + "O": "---", + "P": ".--.", + "Q": "--.-", + "R": ".-.", + "S": "...", + "T": "-", + "U": "..-", + "V": "...-", + "W": ".--", + "X": "-..-", + "Y": "-.--", + "Z": "--..", + "0": "-----", + "1": ".----", + "2": "..---", + "3": "...--", + "4": "....-", + "5": ".....", + "6": "-....", + "7": "--...", + "8": "---..", + "9": "----.", + } + for word in text: + morse_word: list[str] = [] + for char in word: + upper_char: str = char.upper() + if upper_char in words_pass: + morse_word.append(words_pass[upper_char]) + print(" ".join(morse_word)) + + +if __name__ == "__main__": + morse_code() + + +# - + +# ## Кашееды — 4. +# +# - Каждый воспитанник детского сада может любить одну или несколько каш. Воспитателю нужно быстро получить список фамилий тех, кто любит определённый вид каши. +# - Напишите программу, которая по списку учеников и их любимых каш определяет, кто именно любит заданную кашу. +# - Формат ввода +# - В первой строке задаётся количество детей в группе (N). +# - В следующих N строках записана фамилия ребенка и список его любимых каш. +# - В последней строке записана каша, информацию о которой хочет получить воспитатель. +# - Формат вывода +# - Фамилии учеников, которые любят заданную кашу, в алфавитном порядке. +# - Если таких не окажется, в строке вывода нужно написать «Таких нет». + + +# + +def casheweds_4() -> None: + """casheweds_4.""" + count_children: int = int(input()) + children_porridge: dict[str, set[str]] = {} + for _ in range(count_children): + par: list[str] = input().split() + surname: str = par[0] + porriges: set[str] = set(par[1:]) + children_porridge[surname] = porriges + target_porridge: str = input().strip() + loving_porridge: list[str] = [] + for surname, porriges in children_porridge.items(): + if target_porridge in porriges: + loving_porridge.append(surname) + loving_porridge.sort() + if loving_porridge: + for surname in loving_porridge: + print(surname) + else: + print("Таких нет") + + +if __name__ == "__main__": + casheweds_4() + + +# - + +# ## Зайка — 9. +# +# - Поможем детям подсчитать, сколько животных и деревьев каждого вида встречается за окном поезда. +# - Напишите программу, которая по текстовому описанию местности подсчитывает, сколько раз каждое слово встречается во входных данных. +# - Формат ввода +# - В каждой строке записано описание придорожной местности. +# - Конец ввода обозначается пустой строкой. +# - Формат вывода +# - Список увиденного и их количество. +# - Порядок вывода не имеет значения. + + +# + +def bunny_9() -> None: + """bunny_9.""" + counter: dict[str, int] = {} + while True: + line_bu: str = input().strip() + if line_bu == "": + break + words: list[str] = line_bu.split() + for word in words: + if word not in counter: + counter[word] = 1 + else: + counter[word] += 1 + for description, count in counter.items(): + print(f"{description} {count}") + + +if __name__ == "__main__": + bunny_9() + + +# - + +# ## Транслитерация. +# +# - Для международных документов русский текст преобразуется с использованием латинского алфавита. ГОСТ Р 52535.1-2006 задаёт правила идентификационных карт. +# - Ниже приведена таблица замен: +# - А — A +# - Б — B +# - В — V +# - Г — G +# - Д — D +# - Е — E +# - Ё — E +# - Ж — ZH +# - З — Z +# - И — I +# - Й — I +# - К — K +# - Л — L +# - М — M +# - Н — N +# - О — O +# - П — P +# - Р — R +# - С — S +# - Т — T +# - У — U +# - Ф — F +# - Х — KH +# - Ц — TC +# - Ч — CH +# - Ш — SH +# - Щ — SHCH +# - Ы — Y +# - Э — E +# - Ю — IU +# - Я — IA +# - Давайте транслитерируем русский текст. +# - Букву «ё» транслитерируйте как «e», «й» как «и», а «ъ» и «ь» (и их заглавные версии «Ъ» и «Ь») должны исчезнуть из текста. Строчные буквы заменяются на строчные, заглавные заменяются на заглавные. Если заглавная буква превращается при транслитерации в несколько букв, то заглавной должна остаться только первая из них (например, «Ц» → «Tc»). Все некириллические символы должны остаться на месте. +# - Формат ввода +# - В единственной строке задан русский текст. Текст может состоять из любых символов. Вам необходимо транслитерировать только русские буквы, а остальные оставить на месте. Гарантируется, что нет слов, состоящих только из букв «ъ» и «ь». + + +# + +def transliteration() -> None: + """transliteration.""" + translit_dict: dict[str, str] = { + "А": "A", + "Б": "B", + "В": "V", + "Г": "G", + "Д": "D", + "Е": "E", + "Ё": "E", + "Ж": "Zh", + "З": "Z", + "И": "I", + "Й": "I", + "К": "K", + "Л": "L", + "М": "M", + "Н": "N", + "О": "O", + "П": "P", + "Р": "R", + "С": "S", + "Т": "T", + "У": "U", + "Ф": "F", + "Х": "Kh", + "Ц": "Tc", + "Ч": "Ch", + "Ш": "Sh", + "Щ": "Shch", + "Ы": "Y", + "Э": "E", + "Ю": "Iu", + "Я": "Ia", + "а": "a", + "б": "b", + "в": "v", + "г": "g", + "д": "d", + "е": "e", + "ё": "e", + "ж": "zh", + "з": "z", + "и": "i", + "й": "i", + "к": "k", + "л": "l", + "м": "m", + "н": "n", + "о": "o", + "п": "p", + "р": "r", + "с": "s", + "т": "t", + "у": "u", + "ф": "f", + "х": "kh", + "ц": "tc", + "ч": "ch", + "ш": "sh", + "щ": "shch", + "ы": "y", + "э": "e", + "ю": "iu", + "я": "ia", + } + + with open("cyrillic.txt", encoding="utf-8") as file: + text: str = file.read() + + result_trans: list[str] = [] + for char in text: + if char in translit_dict: + replacement: str = translit_dict[char] + if char.isupper() and len(replacement) > 1: + replacement = replacement[0].upper() + replacement[1:].lower() + result_trans.append(replacement) + elif char in ["Ъ", "Ь", "ъ", "ь"]: + continue + else: + result_trans.append(char) + with open("transliteration.txt", "w", encoding="utf-8") as output_file: + output_file.write("".join(result_trans)) + + +if __name__ == "__main__": + transliteration() + + +# - + +# ## Однофамильцы. +# +# - Начальник кадровой службы хочет выяснить, сколько мужчин-однофамильцев работает в организации. У него есть список фамилий, и на его основании требуется определить количество сотрудников, чьи фамилии совпадают хотя бы с одной другой. +# - Напишите программу, которая по списку фамилий сотрудников подсчитывает общее число однофамильцев — то есть людей, чья фамилия в списке встречается более одного раза. +# - Формат ввода +# - В первой строке указывается количество мужчин — сотрудников организации (N). +# - Затем идут N строк с фамилиями этих сотрудников в произвольном порядке. +# - Формат вывода +# - Количество однофамильцев в организации. + + +# + +def namesakes() -> None: + """namesakes.""" + coll_surname: int = int(input()) + counter: dict[str, int] = {} + for _ in range(coll_surname): + surname: str = input().strip() + if surname in counter: + counter[surname] += 1 + else: + counter[surname] = 1 + total_namesakes: int = 0 + for count in counter.values(): + if count > 1: + total_namesakes += count + print(total_namesakes) + + +if __name__ == "__main__": + namesakes() + + +# - + +# ## Однофамильцы — 2. +# +# - Вновь поможем сотруднику отдела кадров выяснить, сколько мужчин-однофамильцев работает в организации — теперь с более подробным отчётом. +# - Напишите программу, которая по списку фамилий сотрудников выводит список всех однофамильцев (тех, чьи фамилии встречаются более одного раза), а также количество их повторений. +# - Формат ввода +# - В первой строке указывается количество мужчин — сотрудников организации (N). +# - Затем идут N строк с фамилиями этих сотрудников в произвольном порядке. +# - Формат вывода +# - Список однофамильцев в организации с указанием их количества в алфавитном порядке. Если таковых нет — вывести «Однофамильцев нет». + + +# + +def namesakes_2() -> None: + """namesakes_2.""" + coll_surname: int = int(input()) + counter: dict[str, int] = {} + for _ in range(coll_surname): + surname: str = input().strip() + if surname in counter: + counter[surname] += 1 + else: + counter[surname] = 1 + namesakes_lst: list[tuple[str, int]] = [] + for surname, count in counter.items(): + if count > 1: + namesakes_lst.append((surname, count)) + namesakes_lst.sort() + if namesakes_lst: + for surname, count in namesakes_lst: + print(f"{surname} - {count}") + else: + print("Однофамильцев нет") + + +if __name__ == "__main__": + namesakes_2() + + +# - + +# ## Дайте чего-нибудь новенького! +# +# - Главный повар детского сада готовит меню на праздник и хочет выбрать блюда, которые ни разу не подавались на этой неделе. +# - В его распоряжении есть список блюд: +# +# - которые можно приготовить в столовой сегодня; +# - которые были приготовлены в каждый из дней недели. +# +# - Напишите программу, которая по списку доступных сегодня блюд и истории приготовления на неделе определяет, что из этого можно приготовить нового. +# - Формат ввода +# - Число блюд (N), которые можно приготовить в столовой. N строк с названиями блюд. +# - Число дней (M), о которых имеется информация. M блоков строк для каждого из списков. +# - В первой строке каждого блока записано число блюд в заданный день, затем перечисляются эти блюда. +# - Формат вывода +# - Список блюд, которые ещё не готовились на этой неделе в алфавитном порядке. +# - Если все возможные блюда уже были приготовлены, следует вывести «Готовить нечего». + + +# + +def give_me_something_new() -> None: + """give_me_something_new.""" + n_give: int = int(input()) + all_dishes: set[str] = set() + for _ in range(n_give): + dish: str = input().strip() + all_dishes.add(dish) + number_days: int = int(input()) + cooked_dishes: set[str] = set() + for _ in range(number_days): + k_give: int = int(input()) + for _ in range(k_give): + dish_2: str = input().strip() + cooked_dishes.add(dish_2) + not_cooked: set[str] = all_dishes - cooked_dishes + sot_result: list[str] = sorted(not_cooked) + if sot_result: + for dish in sot_result: + print(dish) + else: + print("Готовить нечего") + + +if __name__ == "__main__": + give_me_something_new() + + +# - + +# ## Это будет шедевр! +# +# - Главный повар детского сада хочет быстрее определять, какие блюда можно приготовить на обед. У него есть список доступных продуктов и список рецептов. +# - Напишите программу, которая по списку имеющихся продуктов и рецептам определяет, какие блюда можно приготовить. +# - Формат ввода +# - Число продуктов (N), которые имеются в наличии. N строк с названиями продуктов. +# - Число рецептов (M), о которых имеется информация.M блоков строк для каждого из рецептов. +# - В первой строке каждого блока записано название блюда. +# - Во второй — число ингредиентов. +# - Затем перечисляются сами ингредиенты, требуемые для приготовления блюда. +# - Формат вывода +# - Список блюд, которые можно приготовить в алфавитном порядке. +# - Если ни одно из блюд нельзя приготовить, следует вывести «Готовить нечего». + + +# + +def masterpiece() -> None: + """masterpiece.""" + num_product: int = int(input()) + all_product: set[str] = set() + for _ in range(num_product): + product: str = input().strip() + all_product.add(product) + number_recipes: int = int(input()) + cooked_dishes: list[str] = [] + for _ in range(number_recipes): + name_dish: str = input().strip() + number_ingred: int = int(input()) + ingredients: set[str] = set() + for _ in range(number_ingred): + ingredient: str = input().strip() + ingredients.add(ingredient) + if ingredients <= all_product: + cooked_dishes.append(name_dish) + cooked_dishes.sort() + if cooked_dishes: + for dish in cooked_dishes: + print(dish) + else: + print("Готовить нечего") + + +if __name__ == "__main__": + masterpiece() + + +# - + +# ## Двоичная статистика! +# +# - У программистов особые отношения с двоичной системой счисления — ведь именно в ней работает вся цифровая техника. Продолжим тренировки в статистической обработке данных и научимся анализировать числа с позиции их представления в двоичной системе. +# - Напишите программу, которая по списку целых чисел определяет: +# - количество разрядов; +# - количество единиц; +# - количество нулей. +# - Формат ввода +# - Вводится последовательность чисел, записанных через пробел. +# - Формат вывода +# - Вывести список словарей с требуемой статистикой. +# - Примечание +# - Вывод в примерах отформатирован только для визуальной наглядности. +# - Все пробельные символы при проверке игнорируются. +# - Порядок словарей обязан совпадать с порядком переданных чисел. +# - Порядок ключей в словаре не имеет значения. + + +# + +def binary_statistics() -> None: + """binary_statistics.""" + numbers: list[str] = input().split() + result_bin: list[dict[str, int]] = [] + for num in numbers: + binary_str: str = bin(int(num))[2:] + digits: int = len(binary_str) + units: int = binary_str.count("1") + zeros: int = binary_str.count("0") + stats: dict[str, int] = {"digits": digits, "units": units, "zeros": zeros} + result_bin.append(stats) + print("[") + for i, stats in enumerate(result_bin): + print(" {") + print(f' "digits": {stats["digits"]},') + print(f' "units": {stats["units"]},') + print(f' "zeros": {stats["zeros"]}') + if i < len(result_bin) - 1: + print(" },") + else: + print(" }") + print("]") + + +if __name__ == "__main__": + binary_statistics() + + +# - + +# ## Зайка — 10. +# +# - Дети в поезде снова играют в любимую игру — считать зверей за окном. На этот раз их заинтересовало, что находится рядом с зайками. Поможем им разобраться! +# - Напишите программу, которая по описанию придорожной местности находит все объекты, стоящие рядом с зайками — слева или справа от слова зайка. +# - Формат ввода +# - В каждой записано описание придорожной местности. +# - Конец ввода обозначается пустой строкой. +# - Формат вывода +# - Определите список увиденного рядом с зайками без повторений. +# - Порядок вывода не имеет значения. +# - Примечание +# - Считается, что объект находится рядом, если он записан справа или слева от требуемого. + + +# + +def bunny_10() -> None: + """bunny_10.""" + objects: set[str] = set() + while True: + line_string: str = input().strip() + if line_string == "": + break + words: list[str] = line_string.split() + for i, word in enumerate(words): + if word == "зайка": + if i > 0: + objects.add(words[i - 1]) + if i < len(words) - 1: + objects.add(words[i + 1]) + if objects: + for obj in sorted(objects): + print(obj) + else: + print("") + + +if __name__ == "__main__": + bunny_10() + + +# - + +# ## Друзья друзей. +# +# - Теория шести рукопожатий гласит, что любые два человека на планете могут быть связаны друг с другом через максимум шесть знакомых. Но мы не будем идти так далеко — давайте ограничимся двумя уровнями знакомства. +# - Напишите программу, которая по списку пар друзей для каждого человека определяет список его друзей второго уровня — то есть друзей его друзей, исключая его самого и его непосредственных друзей. +# - Формат ввода +# - В каждой строке записывается два имени. +# - Окончанием ввода служит пустая строка. +# - Формат вывода +# - Выведите список всех людей и их «друзей 2-го уровня» в формате «Человек: Друг1, Друг2, ...». +# - Список людей и друзей в каждой строке требуется вывести в алфавитном порядке без повторений. + + +# + +def friends_of_friends() -> None: + """friends_of_friends.""" + + +friends: dict[str, set[str]] = {} +while True: + line: str = input().strip() + if line == "": + break + person1: str + person2: str + person1, person2 = line.split() + if person1 not in friends: + friends[person1] = set() + if person2 not in friends: + friends[person2] = set() + friends[person1].add(person2) + friends[person2].add(person1) +sorted_people = sorted(friends.keys()) +for person in sorted_people: + second_level: set[str] = set() + for friend in friends[person]: + second_level.update(friends[friend]) + second_level.discard(person) + for friend in friends[person]: + second_level.discard(friend) + sorted_second_level: list[str] = sorted(second_level) + if sorted_second_level: + result: str = ", ".join(sorted_second_level) + print(f"{person}: {result}") + else: + print(f"{person}: ") + + +if __name__ == "__main__": + friends_of_friends() + + +# - + +# ## Карта сокровищ. +# +# - На пиратской карте отмечено множество точек, в которых, по слухам, зарыты сокровища. Каждая точка задана координатами (xi,yi) в километрах. Капитан Крюк хочет собрать как можно больше кладов за один маршрут. Однако есть ограничение: между двумя соседними точками маршрута можно перемещаться только в том случае, если координаты этих точек различаются только последней цифрой — как по оси x, так и по оси y. +# - Например: +# - Из точки (15, 10) можно попасть в (18, 16) — координаты отличаются только последней цифрой (5 → 8 и 0 → 6). Но из (14, 68) в (19, 71) попасть нельзя, потому что десятки и сотни отличаются. Также нельзя попасть из (5, 12) в (13, 14), так как 5 и 13 различаются не только в последнем разряде. Напишите программу, которая по списку координат точек определяет, какое максимальное количество точек может входить в маршрут Капитана Крюка, построенный по описанному правилу. +# - Формат ввода +# - В первой строке указано число N(1≤N≤10**5) — количество точек, отмеченных на карте сокровищ. +# - В следующих N строках содержатся пары координат: xi и yi — координаты i-ой точки. +# - Координаты — целые числа не меньше нуля и не больше 10**9. +# - Гарантируется, что совпадающих точек в списке нет. +# - Формат вывода +# - Выведите одно число — максимальное количество точек, которое Капитан Крюк сможет посетить по маршруту, построенному по описанным правилам. + + +# + +def treasure_map() -> None: + """treasure_map.""" + n_map: int = int(input()) + groups: dict[tuple[int, int], int] = {} + for _ in range(n_map): + x_map, y_map = map(int, input().split()) + group_x: int = x_map // 10 + group_y: int = y_map // 10 + group_key: tuple[int, int] = (group_x, group_y) + if group_key not in groups: + groups[group_key] = 0 + groups[group_key] += 1 + max_count: int = 0 + for count in groups.values(): + max_count = max(max_count, count) + print(max_count) + + +if __name__ == "__main__": + treasure_map() + + +# - + +# ## Частная собственность. +# +# - Ребята приносят игрушки в детский сад и играют все вместе. Сегодня они решили выяснить, игрушки какого типа принадлежат только одному из детей. +# - Напишите программу, которая по списку детей и их игрушек определяет список игрушек, которые есть только у одного ребёнка. Выведите их в алфавитном порядке. +# - Формат ввода +# - В первой строке задается количество детей в группе (N). +# - В каждой из следующих N строк записано имя ребенка и его игрушки в формате: +# - Имя: игрушка1, игрушка2, .... +# - Формат вывода +# - Список игрушек, которые есть только у одного из детей в алфавитном порядке. + + +# + +def private_property() -> None: + """private_property.""" + n_private: int = int(input()) + toy_to_children: dict[str, set[str]] = {} + for _ in range(n_private): + line_str: str = input().strip() + parts: list[str] = line_str.split(": ") + name: str = parts[0] + toys: list[str] = parts[1].split(", ") + for toy in toys: + toy = toy.strip() + if toy not in toy_to_children: + toy_to_children[toy] = set() + toy_to_children[toy].add(name) + unique_toys: list[str] = [] + for toy, children in toy_to_children.items(): + if len(children) == 1: + unique_toys.append(toy) + unique_toys.sort() + for toy in unique_toys: + print(toy) + + +if __name__ == "__main__": + private_property() + + +# - + +# ## Простая задача 4.0. +# +# - Вы проделали отличную работу и дошли до конца — впереди последняя, двадцатая задача. Она не простая, но вы уже вооружены знаниями о множествах, словарях и алгоритмах. +# - Напомним, что взаимно простыми называются числа, которые не имеют общих делителей, кроме 1. +# - Напишите программу, которая: +# - получает список чисел, разделённых точкой с запятой и пробелом; +# - для каждого числа определяет, с какими другими числами оно взаимно просто; +# - выводит результат в порядке возрастания чисел без повторений; +# - если для числа не найдено ни одного взаимно простого числа — его не нужно выводить вовсе. +# - Формат ввода +# - Задана последовательность чисел записанных через точку с запятой (;) и пробел. +# - Формат вывода +# - Список чисел с указанием взаимно простых ему среди переданных. +# - Все числа должны быть выведены в порядке возрастания без повторений. +# - Строки следует отформатировать по правилу: число - взаимно простое 1, взаимно простое 2, ... +# - Если для числа не было найдено ни одного взаимно простого, то и выводить его не требуется. + + +def simple_task_4() -> None: + """simple_task_4.""" + input_string: str = input().strip() + if input_string.endswith("."): + input_string = input_string[:-1] + numbers: list[int] = list(map(int, input_string.split("; "))) + unique_numers: list[int] = sorted(set(numbers)) + coprime_dict: dict[int, list[int]] = {} + for i_simple, a_simple in enumerate(unique_numers): + for j_simple in range(i_simple + 1, len(unique_numers)): + b_simple: int = unique_numers[j_simple] + num_1: int = a_simple + num_2: int = b_simple + while num_2 != 0: + num_1, num_2 = num_2, num_1 % num_2 + + if num_1 == 1: + if a_simple not in coprime_dict: + coprime_dict[a_simple] = [] + coprime_dict[a_simple].append(b_simple) + if b_simple not in coprime_dict: + coprime_dict[b_simple] = [] + coprime_dict[b_simple].append(a_simple) + + for num, coprime_list in coprime_dict.items(): + coprime_list.sort() + for num, coprime_list in sorted(coprime_dict.items()): + result_string: str = ", ".join(map(str, coprime_list)) + print(f"{num} - {result_string}") diff --git a/python/yandex/streaming_input_output_3_5.ipynb b/python/yandex/streaming_input_output_3_5.ipynb new file mode 100644 index 00000000..b5ff9a5b --- /dev/null +++ b/python/yandex/streaming_input_output_3_5.ipynb @@ -0,0 +1,1365 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "id": "b0330807", + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"Потоковый ввод/вывод. Работа с текстовыми файлами. JSON.\n", + "\n", + "Вы научитесь считывать данные из файлов, а также записывать\n", + "результаты работы программ обратно в текстовые и JSON-файлы.\n", + "\"\"\"\n", + "# pylint: disable=too-many-lines\n", + "# pylint: disable=unused-import" + ] + }, + { + "cell_type": "markdown", + "id": "159d6139", + "metadata": {}, + "source": [ + "## A+B+...\n", + "\n", + "- В этом блоке мы научимся работать с потоками ввода-вывода и с файлами, а ещё — познакомимся с форматом JSON. Все эти инструменты пригодятся, когда данных слишком много, чтобы вводить их вручную, или когда они приходят в программу из внешнего источника.\n", + "- Начнём с простой, но полезной задачи.\n", + "- Напишите программу, которая считывает все введённые строки и находит сумму всех чисел в потоке ввода.\n", + "- Формат ввода\n", + "- Вводятся строки чисел.\n", + "- Формат вывода\n", + "- Одно число — сумма всех чисел в потоке ввода." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f132a6c6", + "metadata": {}, + "outputs": [], + "source": [ + "import json\n", + "import math\n", + "import os\n", + "import sys\n", + "from sys import stdin\n", + "from typing import Dict, Iterator, List, TypedDict, Union\n", + "\n", + "total_sum: int = 0\n", + "for line in sys.stdin:\n", + " line_cleaned = line.strip()\n", + " if line_cleaned:\n", + " numbers: List[str] = line_cleaned.split()\n", + " for num in numbers:\n", + " total_sum += int(num)\n", + "print(total_sum)" + ] + }, + { + "cell_type": "markdown", + "id": "3170a2a1", + "metadata": {}, + "source": [ + "## Средний рост\n", + "\n", + "- Учитель физкультуры задался вопросом, на сколько в среднем его подопечные выросли за прошедший месяц. Поможем ему провести вычисления на Python!\n", + "- Напишите программу, которая определяет, на сколько изменился средний рост учеников в классе.\n", + "- Формат ввода\n", + "- Вводится информация о детях в формате:\n", + "- <Имя> <Рост месяц назад> <Рост сейчас>\n", + "- Формат вывода\n", + "- Одно число — ответ на вопрос задачи.\n", + "- Ответ округлите до целых. Например, функцией round." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2e4ab374", + "metadata": {}, + "outputs": [], + "source": [ + "heights_before = []\n", + "heights_now = []\n", + "for line in stdin:\n", + " line = line.strip()\n", + " if line:\n", + " parts = line.split()\n", + " if len(parts) >= 3:\n", + " try:\n", + " height_before = float(parts[-2])\n", + " height_now = float(parts[-1])\n", + " heights_before.append(height_before)\n", + " heights_now.append(height_now)\n", + " except ValueError:\n", + " continue\n", + "if heights_before and heights_now:\n", + " avg_before = sum(heights_before) / len(heights_before)\n", + " avg_now = sum(heights_now) / len(heights_now)\n", + " difference = avg_now - avg_before\n", + " print(round(difference))\n", + "else:\n", + " print(0)" + ] + }, + { + "cell_type": "markdown", + "id": "944218d1", + "metadata": {}, + "source": [ + "## Без комментариев 2.0\n", + "\n", + "- Как вы помните, когда вы комментируете свой код, перед его выполнением интерпретатор удаляет комментарии.\n", + "- Напишите программу, которая выполняет эту функцию — удаляет комментарии из кода.\n", + "- Формат ввода\n", + "- Вводятся строки программы.\n", + "- Формат вывода\n", + "- Каждую строку нужно очистить от комментариев.\n", + "- А если комментарий — вся строка, то выводить её не нужно." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6eaee3ce", + "metadata": {}, + "outputs": [], + "source": [ + "for line in stdin:\n", + " line_cl: str = line.rstrip(\"\\n\")\n", + " if line_cl and not line_cl.startswith(\"#\"):\n", + " parts_: list[str] = line_cl.split(\"#\", 1)\n", + " code_part: str = parts_[0].rstrip()\n", + " if code_part:\n", + " print(code_part)" + ] + }, + { + "cell_type": "markdown", + "id": "d773b547", + "metadata": {}, + "source": [ + "## Найдётся всё 2.0\n", + "\n", + "- Поиск информации — важная часть современной жизни. Создайте программу, которая реализует маленький компонент поисковой системы: она должна находить строки, содержащие заданный запрос.\n", + "- Формат ввода\n", + "- Вводятся заголовки страниц.\n", + "- В последней строке записан поисковый запрос.\n", + "- Формат вывода\n", + "- Вывести все заголовки страниц, в которых присутствует поисковый запрос (регистр не имеет значения).\n", + "- Порядок заголовков должен сохраниться." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b7f28fcb", + "metadata": {}, + "outputs": [], + "source": [ + "lines: List[str] = []\n", + "query: str = \"\"\n", + "for line in stdin:\n", + " cleaned_line_2: str = line.strip()\n", + " if cleaned_line_2:\n", + " lines.append(cleaned_line_2)\n", + "\n", + "if lines:\n", + " query = lines.pop().lower()\n", + "\n", + "for line in lines:\n", + " if query in line.lower():\n", + " print(line)" + ] + }, + { + "cell_type": "markdown", + "id": "a77bf0c4", + "metadata": {}, + "source": [ + "## А роза упала на лапу Азора 6.0\n", + "\n", + "- Мы уже писали программы, которые определяли, палиндром ли перед нами. Теперь задача посложнее: найдите все слова-палиндромы среди введённых строк и выведите их без повторов, в алфавитном порядке.\n", + "- Формат ввода\n", + "- Вводятся слова.\n", + "- Формат вывода\n", + "- Список слов-палиндромов в алфавитном порядке без повторений.\n", + "- Примечание\n", + "- При проверке слов не обращайте внимание на регистр." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0d85dc31", + "metadata": {}, + "outputs": [], + "source": [ + "palindromes = set()\n", + "for line in stdin:\n", + " line = line.strip()\n", + " if line:\n", + " words = line.split()\n", + " for word in words:\n", + " lower_word = word.lower()\n", + " if lower_word == lower_word[::-1]:\n", + " palindromes.add(word)\n", + "sorted_palindrom = sorted(palindromes)\n", + "for palindrome in sorted_palindrom:\n", + " print(palindrome)" + ] + }, + { + "cell_type": "markdown", + "id": "379708ca", + "metadata": {}, + "source": [ + "## Транслитерация 2.0\n", + "\n", + "- Переходим к работе с файлами. Для международных документов русский текст преобразуется с использованием латинского алфавита. Вам предстоит выполнить транслитерацию текста по стандарту ГОСТ.\n", + "- Например: ГОСТ Р 52535.1-2006 задаёт правила транслитерации идентификационных карт.\n", + "- В этой задаче вы впервые будете считывать текст из файла и записывать результат в другой файл.\n", + "- А ещё — аккуратно работать с символами и строками, соблюдая правила преобразования регистра.\n", + "- Ниже приведена таблица замен:\n", + "- А — A\n", + "- Б — B\n", + "- В — V\n", + "- Г — G\n", + "- Д — D\n", + "- Е — E\n", + "- Ё — E\n", + "- Ж — ZH\n", + "- З — Z\n", + "- И — I\n", + "- Й — I\n", + "- К — K\n", + "- Л — L\n", + "- М — M\n", + "- Н — N\n", + "- О — O\n", + "- П — P\n", + "- Р — R\n", + "- С — S\n", + "- Т — T\n", + "- У — U\n", + "- Ф — F\n", + "- Х — KH\n", + "- Ц — TC\n", + "- Ч — CH\n", + "- Ш — SH\n", + "- Щ — SHCH\n", + "- Ы — Y\n", + "- Э — E\n", + "- Ю — IU\n", + "- Я — IA\n", + "- Букву «ё» транслитерируйте как «e», «й» как «и», а «ъ» и «ь» (и их заглавные версии «Ъ» и «Ь») должны исчезнуть из текста. Строчные буквы заменяются на строчные, заглавные заменяются на заглавные.\n", + "- Если заглавная буква превращается при транслитерации в несколько букв, то заглавной должна остаться только первая из них (например, «Ц» → «Tc»).\n", + "- Все некириллические символы должны остаться на месте.\n", + "- Формат ввода\n", + "- В одной папке с вашей программой лежит файл cyrillic.txt. В нём, в числе прочих, содержится некоторое количество кириллических символов.\n", + "- Формат вывода\n", + "- В файл transliteration.txt записать результат транслитерации исходного файла." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c6206223", + "metadata": {}, + "outputs": [], + "source": [ + "translit_dict: dict[str, str] = {\n", + " \"А\": \"A\",\n", + " \"Б\": \"B\",\n", + " \"В\": \"V\",\n", + " \"Г\": \"G\",\n", + " \"Д\": \"D\",\n", + " \"Е\": \"E\",\n", + " \"Ё\": \"E\",\n", + " \"Ж\": \"Zh\",\n", + " \"З\": \"Z\",\n", + " \"И\": \"I\",\n", + " \"Й\": \"I\",\n", + " \"К\": \"K\",\n", + " \"Л\": \"L\",\n", + " \"М\": \"M\",\n", + " \"Н\": \"N\",\n", + " \"О\": \"O\",\n", + " \"П\": \"P\",\n", + " \"Р\": \"R\",\n", + " \"С\": \"S\",\n", + " \"Т\": \"T\",\n", + " \"У\": \"U\",\n", + " \"Ф\": \"F\",\n", + " \"Х\": \"Kh\",\n", + " \"Ц\": \"Tc\",\n", + " \"Ч\": \"Ch\",\n", + " \"Ш\": \"Sh\",\n", + " \"Щ\": \"Shch\",\n", + " \"Ы\": \"Y\",\n", + " \"Э\": \"E\",\n", + " \"Ю\": \"Iu\",\n", + " \"Я\": \"Ia\",\n", + " \"а\": \"a\",\n", + " \"б\": \"b\",\n", + " \"в\": \"v\",\n", + " \"г\": \"g\",\n", + " \"д\": \"d\",\n", + " \"е\": \"e\",\n", + " \"ё\": \"e\",\n", + " \"ж\": \"zh\",\n", + " \"з\": \"z\",\n", + " \"и\": \"i\",\n", + " \"й\": \"i\",\n", + " \"к\": \"k\",\n", + " \"л\": \"l\",\n", + " \"м\": \"m\",\n", + " \"н\": \"n\",\n", + " \"о\": \"o\",\n", + " \"п\": \"p\",\n", + " \"р\": \"r\",\n", + " \"с\": \"s\",\n", + " \"т\": \"t\",\n", + " \"у\": \"u\",\n", + " \"ф\": \"f\",\n", + " \"х\": \"kh\",\n", + " \"ц\": \"tc\",\n", + " \"ч\": \"ch\",\n", + " \"ш\": \"sh\",\n", + " \"щ\": \"shch\",\n", + " \"ы\": \"y\",\n", + " \"э\": \"e\",\n", + " \"ю\": \"iu\",\n", + " \"я\": \"ia\",\n", + "}\n", + "\n", + "with open(\"cyrillic.txt\", encoding=\"utf-8\") as file:\n", + " text: str = file.read()\n", + "\n", + "result: list[str] = []\n", + "char: str\n", + "for char in text:\n", + " if char in translit_dict:\n", + " replacement: str = translit_dict[char]\n", + " if char.isupper() and len(replacement) > 1:\n", + " replacement = replacement[0].upper() + replacement[1:].lower()\n", + " result.append(replacement)\n", + " elif char in [\"Ъ\", \"Ь\", \"ъ\", \"ь\"]:\n", + " continue\n", + " else:\n", + " result.append(char)\n", + "\n", + "with open(\"transliteration.txt\", \"w\", encoding=\"utf-8\") as output_file:\n", + " output_file.write(\"\".join(result))" + ] + }, + { + "cell_type": "markdown", + "id": "38ffe2ed", + "metadata": {}, + "source": [ + "## Файловая статистика.\n", + "\n", + "- Иногда нужно быстро понять, что содержится в файле с числами: сколько их, какие, и каковы основные показатели.\n", + "- Напишите программу, которая для заданного файла вычисляет следующие параметры:\n", + "- количество всех чисел;\n", + "- количество положительных чисел;\n", + "- минимальное число;\n", + "- максимальное число;\n", + "- сумма всех чисел;\n", + "- среднее арифметическое всех чисел с точностью до двух знаков после запятой.\n", + "- Формат ввода\n", + "- Пользователь вводит имя файла.\n", + "- Файл содержит произвольное количество чисел, разделённых пробелами и символами перевода строки.\n", + "- Формат вывода\n", + "- Выведите статистику в указанном порядке." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "50253203", + "metadata": {}, + "outputs": [], + "source": [ + "filename: str = input().strip()\n", + "try:\n", + " with open(filename, encoding=\"utf-8\") as file:\n", + " content: str = file.read()\n", + " numbers_collection: list[float] = []\n", + " for word in content.split():\n", + " try:\n", + " number: float = float(word)\n", + " numbers_collection.append(number)\n", + " except ValueError:\n", + " continue\n", + " if numbers_collection:\n", + " total_count: int = len(numbers_collection)\n", + " positive_count: int = sum(1 for n in numbers_collection if n > 0)\n", + " min_num: float = min(numbers_collection)\n", + " max_num: float = max(numbers_collection)\n", + " sum_total: float = sum(numbers_collection)\n", + " average: float = round(sum_total / total_count, 2)\n", + " print(total_count)\n", + " print(positive_count)\n", + " print(int(min_num) if min_num.is_integer() else min_num)\n", + " print(int(max_num) if max_num.is_integer() else max_num)\n", + " print(int(sum_total) if sum_total.is_integer() else sum_total)\n", + " print(average)\n", + " else:\n", + " print(0)\n", + " print(0)\n", + " print(0)\n", + " print(0)\n", + " print(0)\n", + " print(0)\n", + "except FileNotFoundError:\n", + " print(\"Файл не найден\")\n", + " print(0)\n", + " print(0)\n", + " print(0)\n", + " print(0)\n", + " print(0)\n", + " print(0)\n", + "except PermissionError:\n", + " print(\"Нет прав доступа к файлу\")\n", + " print(0)\n", + " print(0)\n", + " print(0)\n", + " print(0)\n", + " print(0)\n", + " print(0)\n", + "except OSError as e:\n", + " print(f\"Ошибка ввода-вывода: {e}\")\n", + " print(0)\n", + " print(0)\n", + " print(0)\n", + " print(0)\n", + " print(0)\n", + " print(0)\n", + "except UnicodeDecodeError:\n", + " print(\"Ошибка кодировки файла\")\n", + " print(0)\n", + " print(0)\n", + " print(0)\n", + " print(0)\n", + " print(0)\n", + " print(0)" + ] + }, + { + "cell_type": "markdown", + "id": "bdc81e06", + "metadata": {}, + "source": [ + "## Файловая разница.\n", + "\n", + "- Иногда нужно понять, чем два текста отличаются. Например, какие слова встретились только в одном источнике.\n", + "- Напишите программу, которая сравнивает два файла и записывает в третий файл все слова, которые есть только в одном из них.\n", + "- Формат ввода\n", + "- Пользователь вводит три имени файлов.\n", + "- Каждый из входных файлов содержит произвольное количество слов, разделённых пробелами и символами перевода строки.\n", + "- Формат вывода\n", + "- В третий файл выведите в алфавитном порядке без повторений список слов, которые есть только в одном из файлов." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "741d757f", + "metadata": {}, + "outputs": [], + "source": [ + "def process_unique_words() -> None:\n", + " \"\"\"process_unique_words.\"\"\"\n", + " file1_name: str = input().strip()\n", + " file2_name: str = input().strip()\n", + " output_name: str = input().strip()\n", + "\n", + " words1: set[str] = set()\n", + " try:\n", + " with open(file1_name, encoding=\"utf-8\") as f:\n", + " for line_s in f:\n", + " words1.update(line_s.split())\n", + " except FileNotFoundError:\n", + " print(f\"Файл {file1_name} не найден\")\n", + " return\n", + "\n", + " words2: set[str] = set()\n", + " try:\n", + " with open(file2_name, encoding=\"utf-8\") as f:\n", + " for line_z in f:\n", + " words2.update(line_z.split())\n", + " except FileNotFoundError:\n", + " print(f\"Файл {file2_name} не найден\")\n", + " return\n", + "\n", + " unique_words: set[str] = words1 ^ words2\n", + "\n", + " sorted_words: list[str] = sorted(unique_words)\n", + "\n", + " try:\n", + " with open(output_name, \"w\", encoding=\"utf-8\") as f:\n", + " for word_s in sorted_words:\n", + " f.write(word_s + \"\\n\")\n", + " except OSError:\n", + " print(f\"Ошибка записи в файл {output_name}\")\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " process_unique_words()" + ] + }, + { + "cell_type": "markdown", + "id": "0e88d50f", + "metadata": {}, + "source": [ + "## Файловая чистка.\n", + "\n", + "- Python — отличный инструмент для создания утилит, которые обрабатывают текстовые файлы.\n", + "- Напишите скрипт, который «почистит» заданный файл от мусора:\n", + "- повторяющихся пробелов;\n", + "- повторяющихся символов перевода строки;\n", + "- табуляций;\n", + "- излишних пробелов в начале и конце строк.\n", + "- Формат ввода\n", + "- Пользователь вводит два имени файлов.\n", + "- Входной файл содержит неформатированный текст произвольной длины.\n", + "- Формат вывода\n", + "- Во второй файл выведите очищенный текст." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0e3a8969", + "metadata": {}, + "outputs": [], + "source": [ + "with open(input(), encoding=\"UTF-8\") as file_in:\n", + " text_lines: list[str] = file_in.readlines()\n", + "\n", + "formatted: list[str] = [\n", + " \" \".join(line.replace(\"\\t\", \"\").split())\n", + " for line in text_lines\n", + " if len(line.split()) > 0\n", + "]\n", + "with open(input(), \"w\", encoding=\"UTF-8\") as file_out:\n", + " print(\"\\n\".join(formatted), file=file_out)" + ] + }, + { + "cell_type": "markdown", + "id": "185fcea1", + "metadata": {}, + "source": [ + "## Хвост.\n", + "\n", + "- В Linux есть удобная команда tail, которая показывает последние строки файла — особенно полезно, если файл большой.\n", + "- Напишите аналог этой утилиты: программа должна выводить последние N строк из заданного файла.\n", + "- Формат ввода\n", + "- вводит имя файла (F), а затем количество строк (N), которые он хочет увидеть.\n", + "- Формат вывода\n", + "- Выведите N последних строк файла F." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "198450b5", + "metadata": {}, + "outputs": [], + "source": [ + "def tail(filename_tail: str, n_tail: int) -> None:\n", + " \"\"\"\n", + " Выводит последние n_tail строк из файла.\n", + "\n", + " Args:\n", + " filename_tail: Имя файла для чтения\n", + " n_tail: Количество последних строк для вывода\n", + "\n", + " Returns:\n", + " None\n", + " \"\"\"\n", + " try:\n", + " with open(filename_tail, encoding=\"utf-8\") as file_tail:\n", + " lines_tail = file_tail.readlines()\n", + " for line_tail in lines_tail[-n_tail:]:\n", + " print(line_tail, end=\"\")\n", + " except FileNotFoundError:\n", + " print(f\"Файл {filename_tail} не найден\")\n", + " except PermissionError:\n", + " print(f\"Нет прав доступа к файлу {filename_tail}\")\n", + " except UnicodeDecodeError:\n", + " print(f\"Ошибка кодировки файла {filename_tail}\")\n", + " except OSError as e:\n", + " print(f\"Системная ошибка при работе с файлом: {e}\")\n", + " except ValueError as e:\n", + " print(f\"Ошибка значения: {e}\")\n", + " except TypeError as e:\n", + " print(f\"Ошибка типа данных: {e}\")\n", + "\n", + "\n", + "def run_program() -> None:\n", + " \"\"\"\n", + " Основная функция программы.\n", + "\n", + " Запрашивает у пользователя имя файла и количество строк,\n", + " затем вызывает функцию tail для вывода последних строк.\n", + "\n", + " Returns:\n", + " None\n", + " \"\"\"\n", + " filename_run = input().strip()\n", + " try:\n", + " n_run = int(input().strip())\n", + " if n_run < 0:\n", + " print(\"Количество строк должно быть неотрицательным числом\")\n", + " return\n", + " tail(filename_run, n_run)\n", + " except ValueError:\n", + " print(\"Введите корректное число строк\")\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " run_program()" + ] + }, + { + "cell_type": "markdown", + "id": "2f66416b", + "metadata": {}, + "source": [ + "## Файловая статистика 2.0.\n", + "\n", + "- Иногда нужно не просто посчитать статистику по файлу, но и сохранить её в универсальном формате для других программ.\n", + "- Напишите программу, которая вычисляет ключевые числовые параметры и сохраняет их в файл в формате JSON:\n", + "- количество всех чисел;\n", + "- количество положительных чисел;\n", + "- минимальное число;\n", + "- максимальное число;\n", + "- сумма всех чисел;\n", + "- среднее арифметическое всех чисел с точностью до двух знаков после запятой.\n", + "- Формат ввода\n", + "- Пользователь вводит два имени файла.\n", + "- Первый файл содержит произвольное количество чисел, разделённых пробелами и символами перевода строки.\n", + "- Формат вывода\n", + "- Выведите статистику во второй файл в формате JSON.\n", + "- Ключи значений задайте соответственно:\n", + "- count — количество всех чисел;\n", + "- positive_count — количество положительных чисел;\n", + "- min — минимальное число;\n", + "- max — максимальное число;\n", + "- sum — сумма всех чисел;\n", + "- average — среднее арифметическое всех чисел с точностью до двух знаков после запятой." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ef255758", + "metadata": {}, + "outputs": [], + "source": [ + "def process_numbers(input_file: str, output_file_proc: str) -> None:\n", + " \"\"\"\n", + " Обрабатывает числа из входного файла и записывает статистику в выходной файл.\n", + "\n", + " Args:\n", + " input_file: Путь к входному файлу с числами\n", + " output_file_proc: Путь к выходному файлу для записи статистики\n", + " \"\"\"\n", + " try:\n", + " numbers_proc: List[float] = []\n", + " with open(input_file, encoding=\"utf-8\") as f:\n", + " for linee_proc in f:\n", + " line_numbers: List[str] = linee_proc.split()\n", + " for num_str in line_numbers:\n", + " try:\n", + " nume_proc: float = float(num_str)\n", + " numbers_proc.append(nume_proc)\n", + " except ValueError:\n", + " continue\n", + "\n", + " statistics: Dict[str, Union[int, float, None]] = calculate_statistics(\n", + " numbers_proc\n", + " )\n", + "\n", + " with open(output_file_proc, \"w\", encoding=\"utf-8\") as f:\n", + " json.dump(statistics, f, ensure_ascii=False, indent=4)\n", + "\n", + " except FileNotFoundError:\n", + " print(f\"Файл {input_file} не найден\")\n", + " except ValueError as e:\n", + " print(f\"Ошибка значения: {e}\")\n", + " except TypeError as e:\n", + " print(f\"Ошибка типа данных: {e}\")\n", + "\n", + "\n", + "def calculate_statistics(\n", + " numbers_calc: List[float],\n", + ") -> Dict[str, Union[int, float, None]]:\n", + " \"\"\"\n", + " Вычисляет статистику по списку чисел.\n", + "\n", + " Args:\n", + " numbers_calc: Список чисел для анализа\n", + " Returns:\n", + " Словарь со статистикой: count, positive_count, min, max, sum, average\n", + " \"\"\"\n", + " if not numbers_calc:\n", + " return {\n", + " \"count\": 0,\n", + " \"positive_count\": 0,\n", + " \"min\": None,\n", + " \"max\": None,\n", + " \"sum\": 0,\n", + " \"average\": 0.0,\n", + " }\n", + "\n", + " count: int = len(numbers_calc)\n", + " positive_count_calc: int = sum(1 for num in numbers_calc if num > 0)\n", + " min_num_calc: int = int(min(numbers_calc))\n", + " max_num_calc: int = int(max(numbers_calc))\n", + " total_sum_calc: int = int(sum(numbers_calc))\n", + " average_calc: float = round(total_sum / count, 2) if count > 0 else 0.0\n", + "\n", + " return {\n", + " \"count\": count,\n", + " \"positive_count\": positive_count_calc,\n", + " \"min\": min_num_calc,\n", + " \"max\": max_num_calc,\n", + " \"sum\": total_sum_calc,\n", + " \"average\": average_calc,\n", + " }\n", + "\n", + "\n", + "def process_numbers_from_user_input() -> None:\n", + " \"\"\"\n", + " Основная функция для обработки чисел на основе пользовательского ввода.\n", + "\n", + " Запрашивает имена входного и выходного файлов и запускает обработку.\n", + " \"\"\"\n", + " input_filename: str = input().strip()\n", + " output_filename: str = input().strip()\n", + " process_numbers(input_filename, output_filename)\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " process_numbers_from_user_input()" + ] + }, + { + "cell_type": "markdown", + "id": "6f0ea99d", + "metadata": {}, + "source": [ + "## Разделяй и властвуй.\n", + "\n", + "- Числа можно классифицировать по-разному. Например, по количеству чётных и нечётных цифр.\n", + "- Напишите программу, которая делит числа из файла на три группы и записывает каждую в отдельный файл.\n", + "- числа с преобладающим количеством чётных цифр;\n", + "- числа с преобладающим количеством нечётных цифр;\n", + "- числа с одинаковым количеством чётных и нечётных цифр.\n", + "- Формат ввода\n", + "- Пользователь вводит четыре имени файла.\n", + "- Первый файл содержит произвольное количество чисел, разделённых пробелами и символами перевода строки.\n", + "- Формат вывода\n", + "- В три другие файла выведите числа, которые подходят под требуемое условие.\n", + "- Сохраните положение чисел в строках." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d7e8ffc3", + "metadata": {}, + "outputs": [], + "source": [ + "input_file_: str = input()\n", + "evens_file: str = input()\n", + "odds_file: str = input()\n", + "equals_file: str = input()\n", + "\n", + "with open(input_file_, encoding=\"UTF-8\") as file:\n", + " strings: list[str] = [string for string in file.read().split(\"\\n\") if string]\n", + "\n", + "even_digits: str = \"02468\"\n", + "odd_digits: str = \"13579\"\n", + "\n", + "string: str\n", + "for string in strings:\n", + " evens: list[str] = []\n", + " odds: list[str] = []\n", + " equals: list[str] = []\n", + "\n", + " number_: str\n", + " for number_ in string.split():\n", + " total_evens: int = 0\n", + " total_odds: int = 0\n", + " char_: str\n", + " for char_ in number_:\n", + " if char_ in even_digits:\n", + " total_evens += 1\n", + " elif char_ in odd_digits:\n", + " total_odds += 1\n", + "\n", + " if total_evens > total_odds:\n", + " evens.append(number_)\n", + " elif total_evens < total_odds:\n", + " odds.append(number_)\n", + " else:\n", + " equals.append(number_)\n", + "\n", + " with open(evens_file, \"a\", encoding=\"UTF-8\") as file:\n", + " file.write(\" \".join(evens) + \"\\n\")\n", + " with open(odds_file, \"a\", encoding=\"UTF-8\") as file:\n", + " file.write(\" \".join(odds) + \"\\n\")\n", + " with open(equals_file, \"a\", encoding=\"UTF-8\") as file:\n", + " file.write(\" \".join(equals) + \"\\n\")" + ] + }, + { + "cell_type": "markdown", + "id": "0bc05632", + "metadata": {}, + "source": [ + "## Обновление данных.\n", + "\n", + "- Часто приходится обновлять данные.\n", + "- Создайте программу, которая обновляет JSON файл.\n", + "- Формат ввода\n", + "- Пользователь вводит имя файла.\n", + "- Затем вводятся строки вида ключ == значение.\n", + "- Формат вывода\n", + "- заданный пользователем файл следует записать обновленный JSON." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "809ebd86", + "metadata": {}, + "outputs": [], + "source": [ + "filename_: str = input().strip()\n", + "data: Dict[str, str]\n", + "try:\n", + " with open(filename_, encoding=\"utf-8\") as file:\n", + " data = json.load(file)\n", + "except FileNotFoundError:\n", + " data = {}\n", + "\n", + "while True:\n", + " try:\n", + " line_2: str = input().strip()\n", + " if not line_2:\n", + " break\n", + " if \" == \" in line_2:\n", + " key: str\n", + " value: str\n", + " key, value = line_2.split(\" == \", 1)\n", + " data[key.strip()] = value.strip()\n", + " else:\n", + " continue\n", + " except EOFError:\n", + " break\n", + " except ValueError as e:\n", + " print(f\"Ошибка значения: {e}\")\n", + " except TypeError as e:\n", + " print(f\"Ошибка типа данных: {e}\")\n", + "\n", + "with open(filename_, \"w\", encoding=\"utf-8\") as file:\n", + " json.dump(data, file, ensure_ascii=False, indent=4)" + ] + }, + { + "cell_type": "markdown", + "id": "bc6f6c3b", + "metadata": {}, + "source": [ + "## Слияние данных.\n", + "\n", + "- Местная компания решила обновить и одновременно перестроить свою систему хранения пользовательских данных.\n", + "- Напишите программу, которая принимает два JSON-файла: с текущими данными и обновлениями, а затем объединяет их в новую структуру.\n", + "- Формат ввода\n", + "- Пользователь вводит два имени файла.\n", + "- В первом хранится JSON массив пользователей.\n", + "- Во втором — массив новых данных.\n", + "- Информация о каждом пользователе представляется JSON объектом, в котором обязательно присутствует поле name, описывающее имя пользователя. Остальные поля являются дополнительными.\n", + "- Формат вывода\n", + "- В первый файл запишите информацию о пользователях в виде JSON объекта, ключами которого выступают имена пользователей, а значениями — объекты с информацией о них.\n", + "- Если какая-либо дополнительная информация о пользователе изменяется, то требуется сохранить лексикографически большее значение." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "35c5c057", + "metadata": {}, + "outputs": [], + "source": [ + "users_file: str = input().strip()\n", + "updates_file: str = input().strip()\n", + "\n", + "users_data: List[Dict[str, str]]\n", + "try:\n", + " with open(users_file, encoding=\"utf-8\") as file:\n", + " users_data = json.load(file)\n", + "except FileNotFoundError:\n", + " users_data = []\n", + "\n", + "updates_data: List[Dict[str, str]]\n", + "try:\n", + " with open(updates_file, encoding=\"utf-8\") as file:\n", + " updates_data = json.load(file)\n", + "except FileNotFoundError:\n", + " updates_data = []\n", + "\n", + "users_dict: Dict[str, Dict[str, str]] = {}\n", + "user: Dict[str, str]\n", + "for user in users_data:\n", + " if \"name\" in user:\n", + " name: str = user[\"name\"]\n", + " user_info: Dict[str, str] = {k: v for k, v in user.items() if k != \"name\"}\n", + " users_dict[name] = user_info\n", + "\n", + "update: Dict[str, str]\n", + "for update in updates_data:\n", + " if \"name\" in update:\n", + " name_2: str = update[\"name\"]\n", + " update_info: Dict[str, str] = {k: v for k, v in update.items() if k != \"name\"}\n", + "\n", + " if name_2 in users_dict:\n", + " key_: str\n", + " value_: str\n", + " for key_, value_ in update_info.items():\n", + " if key_ in users_dict[name_2]:\n", + " users_dict[name_2][key_] = max(users_dict[name_2][key_], value_)\n", + " else:\n", + " users_dict[name_2][key_] = value_\n", + " else:\n", + " users_dict[name_2] = update_info\n", + "\n", + "with open(users_file, \"w\", encoding=\"utf-8\") as file:\n", + " json.dump(users_dict, file, ensure_ascii=False, indent=4)" + ] + }, + { + "cell_type": "markdown", + "id": "96e52d1f", + "metadata": {}, + "source": [ + "## Поставь себя на моё место.\n", + "\n", + "- Сегодня вы — Ядекс.Контест.\n", + "- Напишите программу, которая рассчитывает итоговый балл за выполнение задания на основе файла с тестами и входного потока с ответами.\n", + "- Вашему решению доступен файл scoring.json, в котором содержится информация о системе проверки.\n", + "- Основой системы является список групп тестов.\n", + "- Каждая группа представляет собой объект с полями:\n", + "- points — количество очков, которое можно получить за прохождение данной группы;\n", + "- tests — список объектов с описанием конкретного теста.\n", + "- Объект описывающий тест содержит поля:\n", + "- input — строка входных данных теста;\n", + "- pattern — строка ожидаемых в качестве ответа.\n", + "- В стандартный поток ввода вашего решения передаются ответы, полученные от тестируемой программы.\n", + "- Формат ввода\n", + "- В стандартный поток ввода передаются строки — ответы тестируемой программы на каждый тест.\n", + "- В файле scoring.json содержится информация о тестах задачи.\n", + "- Формат вывода\n", + "- Одно число — количество полученных тестируемой программой баллов.\n", + "- Если группа тестов не была пройдена полностью, то за данную группу ставится пропорциональный балл.\n", + "- Гарантируется, что баллы за группу кратны количеству тестов в ней." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9d057255", + "metadata": {}, + "outputs": [], + "source": [ + "class TestCase(TypedDict):\n", + " \"\"\"Представляет один тестовый случай с шаблоном для сравнения.\"\"\"\n", + "\n", + " pattern: str\n", + "\n", + "\n", + "class Group(TypedDict):\n", + " \"\"\"Представляет группу тестовых случаев с associated баллами.\"\"\"\n", + "\n", + " points: int\n", + " tests: List[TestCase]\n", + "\n", + "\n", + "with open(\"scoring.json\", encoding=\"utf-8\") as file:\n", + " groups: List[Group] = json.load(file)\n", + "\n", + "answers: List[str] = []\n", + "while True:\n", + " try:\n", + " line_o: str = input().strip()\n", + " if line_o:\n", + " answers.append(line_o)\n", + " except EOFError:\n", + " break\n", + "\n", + "answer_iter: Iterator[str] = iter(answers)\n", + "total_score: float = 0\n", + "\n", + "for group in groups:\n", + " points_per_group: int = group[\"points\"]\n", + " tests: List[TestCase] = group[\"tests\"]\n", + " tests_count: int = len(tests)\n", + "\n", + " correct_count: int = 0\n", + "\n", + " for test in tests:\n", + " try:\n", + " user_answer: str = next(answer_iter).strip()\n", + " expected_answer: str = test[\"pattern\"].strip()\n", + "\n", + " if user_answer == expected_answer:\n", + " correct_count += 1\n", + " except StopIteration:\n", + " break\n", + "\n", + " group_score: float = (points_per_group / tests_count) * correct_count\n", + " total_score += group_score\n", + "\n", + "print(int(total_score))" + ] + }, + { + "cell_type": "markdown", + "id": "fc91499f", + "metadata": {}, + "source": [ + "## Найдётся всё 3.0.\n", + "\n", + "- А теперь давайте вновь напишем компонент поисковой системы — на этот раз с учётом формата и содержимого файлов. Сначала вводится поисковый запрос. Затем — список файлов, в которых нужно искать. Нужно найти, в каких файлах встречается запрос, без учёта регистра и с учётом любых пробелов и переводов строки как обычных пробелов.\n", + "- Формат ввода\n", + "- Сначала вводится поисковый запрос.\n", + "- Затем вводятся имена файлов, среди которых следует произвести поиск.\n", + "- Формат вывода \n", + "- Выведите все имена файлов, в которых есть поисковая строка без учета регистра и повторяющихся пробельных символов.\n", + "- Если ни в одном файле информация не была найдена, выведите 404. Not Found.\n", + "- Примечание\n", + "- Система поиска должна обрабатывать строки \"a    b\", \"a b\" и \"a\\nb\" как одинаковые." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "281c83db", + "metadata": {}, + "outputs": [], + "source": [ + "def normalize(text_norm: str) -> str:\n", + " \"\"\"Приводит текст к нижнему регистру, заменяет пробелы.\"\"\"\n", + " return \" \".join(text_norm.lower().split())\n", + "\n", + "\n", + "def search_files_by_content() -> None:\n", + " \"\"\"Основная функция поиска файлов по содержимому.\"\"\"\n", + " search_query: str = input().strip()\n", + " normalized_query: str = normalize(search_query)\n", + "\n", + " filenames: List[str] = []\n", + " while True:\n", + " try:\n", + " filename_norm: str = input().strip()\n", + " if filename_norm:\n", + " filenames.append(filename_norm)\n", + " except EOFError:\n", + " break\n", + "\n", + " found_files: List[str] = []\n", + " for filename_norm in filenames:\n", + " try:\n", + " with open(filename_norm, encoding=\"utf-8\") as file_s:\n", + " content_s: str = file_s.read()\n", + " normalized_content: str = normalize(content_s)\n", + " if normalized_query in normalized_content:\n", + " found_files.append(filename_norm)\n", + " except FileNotFoundError:\n", + " continue\n", + " except ValueError as e:\n", + " print(f\"Ошибка значения: {e}\")\n", + " except TypeError as e:\n", + " print(f\"Ошибка типа данных: {e}\")\n", + "\n", + " if found_files:\n", + " for filename_norm in found_files:\n", + " print(filename_norm)\n", + " else:\n", + " print(\"404. Not Found\")\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " search_files_by_content()" + ] + }, + { + "cell_type": "markdown", + "id": "f936dd76", + "metadata": {}, + "source": [ + "## Прятки.\n", + "\n", + "- Нам дали зашифрованный файл, и сказали, что нужно «выдернуть» младший байт из каждого символа — так восстанавливается спрятанное сообщение.\n", + "- Справка:\n", + "- Стеганография — способ передачи или хранения информации с учётом сохранения в тайне самого факта такой передачи (хранения).\n", + "- В отличие от криптографии, которая скрывает содержимое тайного сообщения, стеганография скрывает сам факт его существования. Как правило сообщение будет выглядеть как что-либо иное, например, как изображение, статья, список покупок, письмо или судоку. Стеганографию обычно используют совместно с методами криптографии, таким образом, дополняя её.\n", + "- Нам был дан файл со скрытым текстом. И было сообщено, что для выделения полезной информации, нужно из каждого кода символа в тексте «выдернуть» младший байт. Это и будет код символа полезной информации. Однако есть одно «но». Если код символа меньше 128 — это и есть полезная информация.\n", + "- Разработайте программу, которая из текстового файла выделяет полезную информацию.\n", + "- Формат ввода\n", + "- В файле secret.txt хранится текст.\n", + "- Формат вывода\n", + "- Выведите спрятанное сообщение." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d5929fbc", + "metadata": {}, + "outputs": [], + "source": [ + "def extract_hidden_message(filename_ext: str) -> str:\n", + " \"\"\"\n", + " Извлекает скрытое сообщение из файла.\n", + "\n", + " Для каждого символа:\n", + " - Если код символа < 128, это полезный символ\n", + " - Иначе извлекаем младший байт (младшие 8 бит).\n", + " \"\"\"\n", + " try:\n", + " with open(filename_ext, encoding=\"utf-8\") as file_ext:\n", + " content_ext: str = file_ext.read()\n", + " except FileNotFoundError:\n", + " print(f\"Файл {filename_ext} не найден\")\n", + " return \"\"\n", + " except ValueError as e:\n", + " print(f\"Ошибка значения: {e}\")\n", + " return \"\"\n", + " except TypeError as e:\n", + " print(f\"Ошибка типа данных: {e}\")\n", + " return \"\"\n", + "\n", + " hidden_message: list[str] = []\n", + " char_ext: str\n", + " for char_ext in content_ext:\n", + " code: int = ord(char_ext)\n", + " if code < 128:\n", + " hidden_message.append(char_ext)\n", + " else:\n", + " low_byte: int = code & 0xFF\n", + " hidden_message.append(chr(low_byte))\n", + " return \"\".join(hidden_message)\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " filename_txt: str = \"secret.txt\"\n", + " message: str = extract_hidden_message(filename_txt)\n", + " print(message)" + ] + }, + { + "cell_type": "markdown", + "id": "c9c0996f", + "metadata": {}, + "source": [ + "## Сколько вешать в байтах?.\n", + "\n", + "- Перед этим — лёгкая утилита: нужно определить размер файла и отформатировать его по ГОСТу. Это пригодится для работы с логами, архивами или системными файлами.\n", + "- В нашей странице согласно ГОСТ 8.417-2002 объём информации измеряется в следующих единицах:\n", + "- бит (б)\n", + "- Байт (Б) = 8 бит\n", + "- Килобайт (КБ) = 1024 Б\n", + "- Мегабайт (МБ) = 1024 КБ\n", + "- Гигабайт (ГБ) = 1024 МБ\n", + "- Напишите программу, которая вычисляет объём заданного файла.\n", + "- Формат ввода\n", + "- Вводится одно имя файла.\n", + "- Формат вывода\n", + "- Выведите объём файла в соответствующих единицах измерения.\n", + "- При получении дробного значения, произведите округление вверх." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b4ba0621", + "metadata": {}, + "outputs": [], + "source": [ + "def format_file_size(size_bytes: int) -> str:\n", + " \"\"\"\n", + " Форматирует размер файла согласно ГОСТ 8.417-2002.\n", + "\n", + " Округляет дробные значения вверх.\n", + "\n", + " \"\"\"\n", + " if size_bytes == 0:\n", + " return \"0Б\"\n", + " units = [\"Б\", \"КБ\", \"МБ\", \"ГБ\"]\n", + " size: float = float(size_bytes)\n", + " unit: str\n", + " for unit in units:\n", + " if size < 1024:\n", + " if unit == \"Б\":\n", + " return f\"{math.ceil(size)}{unit}\"\n", + " size /= 1024\n", + " return f\"{math.ceil(size)}ТБ\"\n", + "\n", + "\n", + "def display_file_size() -> None:\n", + " \"\"\"Запрашивает имя файла и выводит его размер.\"\"\"\n", + " filename_dis: str = input().strip()\n", + " try:\n", + " file_size: int = os.path.getsize(filename_dis)\n", + " formatted_size: str = format_file_size(file_size)\n", + " print(formatted_size)\n", + " except FileNotFoundError:\n", + " print(f\"Файл '{filename_dis}' не найден\")\n", + " except OSError as e:\n", + " print(f\"Ошибка доступа к файлу: {e}\")\n", + " except ValueError as e:\n", + " print(f\"Ошибка значения: {e}\")\n", + " except TypeError as e:\n", + " print(f\"Ошибка типа данных: {e}\")\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " display_file_size()" + ] + }, + { + "cell_type": "markdown", + "id": "cf28b2c7", + "metadata": {}, + "source": [ + "## Это будет наш секрет.\n", + "\n", + "- Давайте реализуем шифр Цезаря, который сдвигает латинские буквы по кругу. Работать будем с текстом в файле — это приближает задачу к реальным случаям шифрования данных. Шифр Цезаря, также известный как шифр сдвига, код Цезаря — один из самых простых и наиболее широко известных методов шифрования. Он назван в честь римского полководца Гая Юлия Цезаря, использовавшего его для секретной переписки со своими генералами. Давайте реализуем эту систему шифрования. Однако для простоты мы будем сдвигать только латинские символы по кругу.\n", + "- Формат ввода\n", + "- Вводится размер сдвига для шифрования.\n", + "- В файле public.txt содержится текст на английском языке.\n", + "- Формат вывода\n", + "- В файл private.txt запишите зашифрованный текст." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d9a2713e", + "metadata": {}, + "outputs": [], + "source": [ + "def caesar_cipher(text_: str, shift: int) -> str:\n", + " \"\"\"Шифрует текст шифром Цезаря. Сдвигает только латинские буквы.\"\"\"\n", + " result_ = []\n", + " for char_2 in text_:\n", + " if \"a\" <= char_2 <= \"z\":\n", + " shifted = chr((ord(char_2) - ord(\"a\") + shift) % 26 + ord(\"a\"))\n", + " result_.append(shifted)\n", + " elif \"A\" <= char_2 <= \"Z\":\n", + " shifted = chr((ord(char_2) - ord(\"A\") + shift) % 26 + ord(\"A\"))\n", + " result_.append(shifted)\n", + " else:\n", + " result_.append(char_2)\n", + " return \"\".join(result_)\n", + "\n", + "\n", + "def encrypt_file() -> None:\n", + " \"\"\"Читает текст из public.txt, шифрует его и записывает в private.txt.\"\"\"\n", + " try:\n", + " shift = int(input().strip())\n", + " with open(\"public.txt\", encoding=\"utf-8\") as file_2:\n", + " original_text = file_2.read()\n", + " encrypted_text = caesar_cipher(original_text, shift)\n", + " with open(\"private.txt\", \"w\", encoding=\"utf-8\") as file_2:\n", + " file_2.write(encrypted_text)\n", + " except FileNotFoundError:\n", + " print(\"Файл public.txt не найден\")\n", + " except ValueError:\n", + " print(\"Введите целое число для сдвига\")\n", + " except TypeError as e:\n", + " print(f\"Ошибка типа данных: {e}\")\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " encrypt_file()" + ] + }, + { + "cell_type": "markdown", + "id": "656f631f", + "metadata": {}, + "source": [ + "## Файловая сумма.\n", + "\n", + "- Теперь вы умеете обрабатывать текстовые файлы, JSON, бинарные данные и строить консольные утилиты. Завершим на высокой ноте — вы вычислите сумму чисел в бинарном файле, представленных 2-байтными значениями.\n", + "- Вы скорее всего знаете, что существуют не только текстовые файлы. Различные форматы данных предусматривают специальное кодирование. Например, BMP изображения хранят некоторую заголовочную информацию и цвета всех пикселей в виде чисел. Давайте поработаем с такими данными. Нам дают файл в некотором формате, назовем его NUM. Он содержит список 2-байтных чисел. Для простоты будем считать, что отрицательных чисел не существует. Напишите программу, которая вычисляет сумму всех записанных в файле чисел в 2-байтном диапазоне.\n", + "- Формат ввода\n", + "- В файле numbers.num содержатся числа в указанном формате.\n", + "- Формат вывода\n", + "- Одно число — сумма всех чисел в файле на 2-байтном диапазоне.\n", + "- Примечание\n", + "- Для простоты файлы в примерах записаны в HEX формате. В этом виде файл представляется как последовательность четырехзначных шестнадцатеричных чисел.\n", + "- В первом примере записано 5 шестнадцатеричных чисел: 1, 2, 3, 4, 5. Их сумма равна 15.\n", + "- Во втором — 255 и 257. Их сумма равна 512.\n", + "- Файл из примеров в изначальном виде можно загрузить здесь:\n", + "- Первый пример\n", + "- Второй пример\n", + "- Если вы хотите изучить принцип хранения целых чисел в ЭВМ, советуем почитать про прямой, обратный и дополнительный коды." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5498f714", + "metadata": {}, + "outputs": [], + "source": [ + "def task_20() -> None:\n", + " \"\"\"Суммирует 2-байтовые числа из файла с обрезкой до 16 бит.\"\"\"\n", + " with open(\"numbers.num\", \"rb\") as src:\n", + " payload: bytes = src.read()\n", + " usable_len: int = len(payload) - (len(payload) % 2)\n", + " total_sum_t: int = sum(\n", + " int.from_bytes(payload[i : i + 2], \"big\", signed=False)\n", + " for i in range(0, usable_len, 2)\n", + " )\n", + " print(total_sum_t % (1 << 16))\n", + "\n", + "\n", + "task_20()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.18" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/python/yandex/streaming_input_output_3_5.py b/python/yandex/streaming_input_output_3_5.py new file mode 100644 index 00000000..ad0d8e6b --- /dev/null +++ b/python/yandex/streaming_input_output_3_5.py @@ -0,0 +1,1106 @@ +"""Потоковый ввод/вывод. Работа с текстовыми файлами. JSON. + +Вы научитесь считывать данные из файлов, а также записывать результаты работы программ +обратно в текстовые и JSON-файлы. +""" + +# pylint: disable=too-many-lines +# pylint: disable=unused-import + +# ## A+B+... +# +# - В этом блоке мы научимся работать с потоками ввода-вывода и с файлами, а ещё — познакомимся с форматом JSON. Все эти инструменты пригодятся, когда данных слишком много, чтобы вводить их вручную, или когда они приходят в программу из внешнего источника. +# - Начнём с простой, но полезной задачи. +# - Напишите программу, которая считывает все введённые строки и находит сумму всех чисел в потоке ввода. +# - Формат ввода +# - Вводятся строки чисел. +# - Формат вывода +# - Одно число — сумма всех чисел в потоке ввода. + +# + +import json +import math +import os +import sys +from collections.abc import Iterator +from sys import stdin +from typing import Dict, List, TypedDict, Union + +total_sum: int = 0 +for line in sys.stdin: + line_cleaned = line.strip() + if line_cleaned: + numbers: list[str] = line_cleaned.split() + for num in numbers: + total_sum += int(num) +print(total_sum) +# - + +# ## Средний рост +# +# - Учитель физкультуры задался вопросом, на сколько в среднем его подопечные выросли за прошедший месяц. Поможем ему провести вычисления на Python! +# - Напишите программу, которая определяет, на сколько изменился средний рост учеников в классе. +# - Формат ввода +# - Вводится информация о детях в формате: +# - <Имя> <Рост месяц назад> <Рост сейчас> +# - Формат вывода +# - Одно число — ответ на вопрос задачи. +# - Ответ округлите до целых. Например, функцией round. + +heights_before = [] +heights_now = [] +for line in stdin: + line = line.strip() + if line: + parts = line.split() + if len(parts) >= 3: + try: + height_before = float(parts[-2]) + height_now = float(parts[-1]) + heights_before.append(height_before) + heights_now.append(height_now) + except ValueError: + continue +if heights_before and heights_now: + avg_before = sum(heights_before) / len(heights_before) + avg_now = sum(heights_now) / len(heights_now) + difference = avg_now - avg_before + print(round(difference)) +else: + print(0) + +# ## Без комментариев 2.0 +# +# - Как вы помните, когда вы комментируете свой код, перед его выполнением интерпретатор удаляет комментарии. +# - Напишите программу, которая выполняет эту функцию — удаляет комментарии из кода. +# - Формат ввода +# - Вводятся строки программы. +# - Формат вывода +# - Каждую строку нужно очистить от комментариев. +# - А если комментарий — вся строка, то выводить её не нужно. + +for line in stdin: + line_cl: str = line.rstrip("\n") + if line_cl and not line_cl.startswith("#"): + parts_: list[str] = line_cl.split("#", 1) + code_part: str = parts_[0].rstrip() + if code_part: + print(code_part) + +# ## Найдётся всё 2.0 +# +# - Поиск информации — важная часть современной жизни. Создайте программу, которая реализует маленький компонент поисковой системы: она должна находить строки, содержащие заданный запрос. +# - Формат ввода +# - Вводятся заголовки страниц. +# - В последней строке записан поисковый запрос. +# - Формат вывода +# - Вывести все заголовки страниц, в которых присутствует поисковый запрос (регистр не имеет значения). +# - Порядок заголовков должен сохраниться. + +# + +lines: list[str] = [] +query: str = "" +for line in stdin: + cleaned_line_2: str = line.strip() + if cleaned_line_2: + lines.append(cleaned_line_2) + +if lines: + query = lines.pop().lower() + +for line in lines: + if query in line.lower(): + print(line) +# - + +# ## А роза упала на лапу Азора 6.0 +# +# - Мы уже писали программы, которые определяли, палиндром ли перед нами. Теперь задача посложнее: найдите все слова-палиндромы среди введённых строк и выведите их без повторов, в алфавитном порядке. +# - Формат ввода +# - Вводятся слова. +# - Формат вывода +# - Список слов-палиндромов в алфавитном порядке без повторений. +# - Примечание +# - При проверке слов не обращайте внимание на регистр. + +palindromes = set() +for line in stdin: + line = line.strip() + if line: + words = line.split() + for word in words: + lower_word = word.lower() + if lower_word == lower_word[::-1]: + palindromes.add(word) +sorted_palindrom = sorted(palindromes) +for palindrome in sorted_palindrom: + print(palindrome) + +# ## Транслитерация 2.0 +# +# - Переходим к работе с файлами. Для международных документов русский текст преобразуется с использованием латинского алфавита. Вам предстоит выполнить транслитерацию текста по стандарту ГОСТ. +# - Например: ГОСТ Р 52535.1-2006 задаёт правила транслитерации идентификационных карт. +# - В этой задаче вы впервые будете считывать текст из файла и записывать результат в другой файл. +# - А ещё — аккуратно работать с символами и строками, соблюдая правила преобразования регистра. +# - Ниже приведена таблица замен: +# - А — A +# - Б — B +# - В — V +# - Г — G +# - Д — D +# - Е — E +# - Ё — E +# - Ж — ZH +# - З — Z +# - И — I +# - Й — I +# - К — K +# - Л — L +# - М — M +# - Н — N +# - О — O +# - П — P +# - Р — R +# - С — S +# - Т — T +# - У — U +# - Ф — F +# - Х — KH +# - Ц — TC +# - Ч — CH +# - Ш — SH +# - Щ — SHCH +# - Ы — Y +# - Э — E +# - Ю — IU +# - Я — IA +# - Букву «ё» транслитерируйте как «e», «й» как «и», а «ъ» и «ь» (и их заглавные версии «Ъ» и «Ь») должны исчезнуть из текста. Строчные буквы заменяются на строчные, заглавные заменяются на заглавные. +# - Если заглавная буква превращается при транслитерации в несколько букв, то заглавной должна остаться только первая из них (например, «Ц» → «Tc»). +# - Все некириллические символы должны остаться на месте. +# - Формат ввода +# - В одной папке с вашей программой лежит файл cyrillic.txt. В нём, в числе прочих, содержится некоторое количество кириллических символов. +# - Формат вывода +# - В файл transliteration.txt записать результат транслитерации исходного файла. + +# + +translit_dict: dict[str, str] = { + "А": "A", + "Б": "B", + "В": "V", + "Г": "G", + "Д": "D", + "Е": "E", + "Ё": "E", + "Ж": "Zh", + "З": "Z", + "И": "I", + "Й": "I", + "К": "K", + "Л": "L", + "М": "M", + "Н": "N", + "О": "O", + "П": "P", + "Р": "R", + "С": "S", + "Т": "T", + "У": "U", + "Ф": "F", + "Х": "Kh", + "Ц": "Tc", + "Ч": "Ch", + "Ш": "Sh", + "Щ": "Shch", + "Ы": "Y", + "Э": "E", + "Ю": "Iu", + "Я": "Ia", + "а": "a", + "б": "b", + "в": "v", + "г": "g", + "д": "d", + "е": "e", + "ё": "e", + "ж": "zh", + "з": "z", + "и": "i", + "й": "i", + "к": "k", + "л": "l", + "м": "m", + "н": "n", + "о": "o", + "п": "p", + "р": "r", + "с": "s", + "т": "t", + "у": "u", + "ф": "f", + "х": "kh", + "ц": "tc", + "ч": "ch", + "ш": "sh", + "щ": "shch", + "ы": "y", + "э": "e", + "ю": "iu", + "я": "ia", +} + +with open("cyrillic.txt", encoding="utf-8") as file: + text: str = file.read() + +result: list[str] = [] +char: str +for char in text: + if char in translit_dict: + replacement: str = translit_dict[char] + if char.isupper() and len(replacement) > 1: + replacement = replacement[0].upper() + replacement[1:].lower() + result.append(replacement) + elif char in ["Ъ", "Ь", "ъ", "ь"]: + continue + else: + result.append(char) + +with open("transliteration.txt", "w", encoding="utf-8") as output_file: + output_file.write("".join(result)) +# - + +# ## Файловая статистика. +# +# - Иногда нужно быстро понять, что содержится в файле с числами: сколько их, какие, и каковы основные показатели. +# - Напишите программу, которая для заданного файла вычисляет следующие параметры: +# - количество всех чисел; +# - количество положительных чисел; +# - минимальное число; +# - максимальное число; +# - сумма всех чисел; +# - среднее арифметическое всех чисел с точностью до двух знаков после запятой. +# - Формат ввода +# - Пользователь вводит имя файла. +# - Файл содержит произвольное количество чисел, разделённых пробелами и символами перевода строки. +# - Формат вывода +# - Выведите статистику в указанном порядке. + +filename: str = input().strip() +try: + with open(filename, encoding="utf-8") as file: + content: str = file.read() + numbers_collection: list[float] = [] + for word in content.split(): + try: + number: float = float(word) + numbers_collection.append(number) + except ValueError: + continue + if numbers_collection: + total_count: int = len(numbers_collection) + positive_count: int = sum(1 for n in numbers_collection if n > 0) + min_num: float = min(numbers_collection) + max_num: float = max(numbers_collection) + sum_total: float = sum(numbers_collection) + average: float = round(sum_total / total_count, 2) + print(total_count) + print(positive_count) + print(int(min_num) if min_num.is_integer() else min_num) + print(int(max_num) if max_num.is_integer() else max_num) + print(int(sum_total) if sum_total.is_integer() else sum_total) + print(average) + else: + print(0) + print(0) + print(0) + print(0) + print(0) + print(0) +except FileNotFoundError: + print("Файл не найден") + print(0) + print(0) + print(0) + print(0) + print(0) + print(0) +except PermissionError: + print("Нет прав доступа к файлу") + print(0) + print(0) + print(0) + print(0) + print(0) + print(0) +except OSError as e: + print(f"Ошибка ввода-вывода: {e}") + print(0) + print(0) + print(0) + print(0) + print(0) + print(0) +except UnicodeDecodeError: + print("Ошибка кодировки файла") + print(0) + print(0) + print(0) + print(0) + print(0) + print(0) + + +# ## Файловая разница. +# +# - Иногда нужно понять, чем два текста отличаются. Например, какие слова встретились только в одном источнике. +# - Напишите программу, которая сравнивает два файла и записывает в третий файл все слова, которые есть только в одном из них. +# - Формат ввода +# - Пользователь вводит три имени файлов. +# - Каждый из входных файлов содержит произвольное количество слов, разделённых пробелами и символами перевода строки. +# - Формат вывода +# - В третий файл выведите в алфавитном порядке без повторений список слов, которые есть только в одном из файлов. + + +# + +def process_unique_words() -> None: + """process_unique_words.""" + file1_name: str = input().strip() + file2_name: str = input().strip() + output_name: str = input().strip() + + words1: set[str] = set() + try: + with open(file1_name, encoding="utf-8") as f: + for line_s in f: + words1.update(line_s.split()) + except FileNotFoundError: + print(f"Файл {file1_name} не найден") + return + + words2: set[str] = set() + try: + with open(file2_name, encoding="utf-8") as f: + for line_z in f: + words2.update(line_z.split()) + except FileNotFoundError: + print(f"Файл {file2_name} не найден") + return + + unique_words: set[str] = words1 ^ words2 + + sorted_words: list[str] = sorted(unique_words) + + try: + with open(output_name, "w", encoding="utf-8") as f: + for word_s in sorted_words: + f.write(word_s + "\n") + except OSError: + print(f"Ошибка записи в файл {output_name}") + + +if __name__ == "__main__": + process_unique_words() +# - + +# ## Файловая чистка. +# +# - Python — отличный инструмент для создания утилит, которые обрабатывают текстовые файлы. +# - Напишите скрипт, который «почистит» заданный файл от мусора: +# - повторяющихся пробелов; +# - повторяющихся символов перевода строки; +# - табуляций; +# - излишних пробелов в начале и конце строк. +# - Формат ввода +# - Пользователь вводит два имени файлов. +# - Входной файл содержит неформатированный текст произвольной длины. +# - Формат вывода +# - Во второй файл выведите очищенный текст. + +# + +with open(input(), encoding="UTF-8") as file_in: + text_lines: list[str] = file_in.readlines() + +formatted: list[str] = [ + " ".join(line.replace("\t", "").split()) + for line in text_lines + if len(line.split()) > 0 +] +with open(input(), "w", encoding="UTF-8") as file_out: + print("\n".join(formatted), file=file_out) + + +# - + +# ## Хвост. +# +# - В Linux есть удобная команда tail, которая показывает последние строки файла — особенно полезно, если файл большой. +# - Напишите аналог этой утилиты: программа должна выводить последние N строк из заданного файла. +# - Формат ввода +# - вводит имя файла (F), а затем количество строк (N), которые он хочет увидеть. +# - Формат вывода +# - Выведите N последних строк файла F. + + +# + +def tail(filename_tail: str, n_tail: int) -> None: + """Выводит последние n_tail строк из файла. + + Args: + filename_tail: Имя файла для чтения + n_tail: Количество последних строк для вывода + + Returns: + None + """ + try: + with open(filename_tail, encoding="utf-8") as file_tail: + lines_tail = file_tail.readlines() + for line_tail in lines_tail[-n_tail:]: + print(line_tail, end="") + except FileNotFoundError: + print(f"Файл {filename_tail} не найден") + except PermissionError: + print(f"Нет прав доступа к файлу {filename_tail}") + except UnicodeDecodeError: + print(f"Ошибка кодировки файла {filename_tail}") + except OSError as e: + print(f"Системная ошибка при работе с файлом: {e}") + except ValueError as e: + print(f"Ошибка значения: {e}") + except TypeError as e: + print(f"Ошибка типа данных: {e}") + + +def run_program() -> None: + """Основная функция программы. + + Запрашивает у пользователя имя файла и количество строк, + затем вызывает функцию tail для вывода последних строк. + + Returns: + None + """ + filename_run = input().strip() + try: + n_run = int(input().strip()) + if n_run < 0: + print("Количество строк должно быть неотрицательным числом") + return + tail(filename_run, n_run) + except ValueError: + print("Введите корректное число строк") + + +if __name__ == "__main__": + run_program() + + +# - + +# ## Файловая статистика 2.0. +# +# - Иногда нужно не просто посчитать статистику по файлу, но и сохранить её в универсальном формате для других программ. +# - Напишите программу, которая вычисляет ключевые числовые параметры и сохраняет их в файл в формате JSON: +# - количество всех чисел; +# - количество положительных чисел; +# - минимальное число; +# - максимальное число; +# - сумма всех чисел; +# - среднее арифметическое всех чисел с точностью до двух знаков после запятой. +# - Формат ввода +# - Пользователь вводит два имени файла. +# - Первый файл содержит произвольное количество чисел, разделённых пробелами и символами перевода строки. +# - Формат вывода +# - Выведите статистику во второй файл в формате JSON. +# - Ключи значений задайте соответственно: +# - count — количество всех чисел; +# - positive_count — количество положительных чисел; +# - min — минимальное число; +# - max — максимальное число; +# - sum — сумма всех чисел; +# - average — среднее арифметическое всех чисел с точностью до двух знаков после запятой. + + +# + +def process_numbers(input_file: str, output_file_proc: str) -> None: + """Обрабатывает числа из входного файла и записывает статистику в выходной + файл. + + Args: + input_file: Путь к входному файлу с числами + output_file_proc: Путь к выходному файлу для записи статистики + """ + try: + numbers_proc: list[float] = [] + with open(input_file, encoding="utf-8") as f: + for linee_proc in f: + line_numbers: list[str] = linee_proc.split() + for num_str in line_numbers: + try: + nume_proc: float = float(num_str) + numbers_proc.append(nume_proc) + except ValueError: + continue + + statistics: dict[str, Union[int, float, None]] = calculate_statistics( + numbers_proc + ) + + with open(output_file_proc, "w", encoding="utf-8") as f: + json.dump(statistics, f, ensure_ascii=False, indent=4) + + except FileNotFoundError: + print(f"Файл {input_file} не найден") + except ValueError as e: + print(f"Ошибка значения: {e}") + except TypeError as e: + print(f"Ошибка типа данных: {e}") + + +def calculate_statistics( + numbers_calc: list[float], +) -> dict[str, Union[int, float, None]]: + """Вычисляет статистику по списку чисел. + + Args: + numbers_calc: Список чисел для анализа + Returns: + Словарь со статистикой: count, positive_count, min, max, sum, average + """ + if not numbers_calc: + return { + "count": 0, + "positive_count": 0, + "min": None, + "max": None, + "sum": 0, + "average": 0.0, + } + + count: int = len(numbers_calc) + positive_count_calc: int = sum(1 for num in numbers_calc if num > 0) + min_num_calc: int = int(min(numbers_calc)) + max_num_calc: int = int(max(numbers_calc)) + total_sum_calc: int = int(sum(numbers_calc)) + average_calc: float = round(total_sum / count, 2) if count > 0 else 0.0 + + return { + "count": count, + "positive_count": positive_count_calc, + "min": min_num_calc, + "max": max_num_calc, + "sum": total_sum_calc, + "average": average_calc, + } + + +def process_numbers_from_user_input() -> None: + """Основная функция для обработки чисел на основе пользовательского ввода. + + Запрашивает имена входного и выходного файлов и запускает обработку. + """ + input_filename: str = input().strip() + output_filename: str = input().strip() + process_numbers(input_filename, output_filename) + + +if __name__ == "__main__": + process_numbers_from_user_input() +# - + +# ## Разделяй и властвуй. +# +# - Числа можно классифицировать по-разному. Например, по количеству чётных и нечётных цифр. +# - Напишите программу, которая делит числа из файла на три группы и записывает каждую в отдельный файл. +# - числа с преобладающим количеством чётных цифр; +# - числа с преобладающим количеством нечётных цифр; +# - числа с одинаковым количеством чётных и нечётных цифр. +# - Формат ввода +# - Пользователь вводит четыре имени файла. +# - Первый файл содержит произвольное количество чисел, разделённых пробелами и символами перевода строки. +# - Формат вывода +# - В три другие файла выведите числа, которые подходят под требуемое условие. +# - Сохраните положение чисел в строках. + +# + +input_file_: str = input() +evens_file: str = input() +odds_file: str = input() +equals_file: str = input() + +with open(input_file_, encoding="UTF-8") as file: + strings: list[str] = [string for string in file.read().split("\n") if string] + +even_digits: str = "02468" +odd_digits: str = "13579" + +string: str +for string in strings: + evens: list[str] = [] + odds: list[str] = [] + equals: list[str] = [] + + number_: str + for number_ in string.split(): + total_evens: int = 0 + total_odds: int = 0 + char_: str + for char_ in number_: + if char_ in even_digits: + total_evens += 1 + elif char_ in odd_digits: + total_odds += 1 + + if total_evens > total_odds: + evens.append(number_) + elif total_evens < total_odds: + odds.append(number_) + else: + equals.append(number_) + + with open(evens_file, "a", encoding="UTF-8") as file: + file.write(" ".join(evens) + "\n") + with open(odds_file, "a", encoding="UTF-8") as file: + file.write(" ".join(odds) + "\n") + with open(equals_file, "a", encoding="UTF-8") as file: + file.write(" ".join(equals) + "\n") +# - + +# ## Обновление данных. +# +# - Часто приходится обновлять данные. +# - Создайте программу, которая обновляет JSON файл. +# - Формат ввода +# - Пользователь вводит имя файла. +# - Затем вводятся строки вида ключ == значение. +# - Формат вывода +# - заданный пользователем файл следует записать обновленный JSON. + +# + +filename_: str = input().strip() +data: dict[str, str] +try: + with open(filename_, encoding="utf-8") as file: + data = json.load(file) +except FileNotFoundError: + data = {} + +while True: + try: + line_2: str = input().strip() + if not line_2: + break + if " == " in line_2: + key: str + value: str + key, value = line_2.split(" == ", 1) + data[key.strip()] = value.strip() + else: + continue + except EOFError: + break + except ValueError as e: + print(f"Ошибка значения: {e}") + except TypeError as e: + print(f"Ошибка типа данных: {e}") + +with open(filename_, "w", encoding="utf-8") as file: + json.dump(data, file, ensure_ascii=False, indent=4) +# - + +# ## Слияние данных. +# +# - Местная компания решила обновить и одновременно перестроить свою систему хранения пользовательских данных. +# - Напишите программу, которая принимает два JSON-файла: с текущими данными и обновлениями, а затем объединяет их в новую структуру. +# - Формат ввода +# - Пользователь вводит два имени файла. +# - В первом хранится JSON массив пользователей. +# - Во втором — массив новых данных. +# - Информация о каждом пользователе представляется JSON объектом, в котором обязательно присутствует поле name, описывающее имя пользователя. Остальные поля являются дополнительными. +# - Формат вывода +# - В первый файл запишите информацию о пользователях в виде JSON объекта, ключами которого выступают имена пользователей, а значениями — объекты с информацией о них. +# - Если какая-либо дополнительная информация о пользователе изменяется, то требуется сохранить лексикографически большее значение. + +# + +users_file: str = input().strip() +updates_file: str = input().strip() + +users_data: list[dict[str, str]] +try: + with open(users_file, encoding="utf-8") as file: + users_data = json.load(file) +except FileNotFoundError: + users_data = [] + +updates_data: list[dict[str, str]] +try: + with open(updates_file, encoding="utf-8") as file: + updates_data = json.load(file) +except FileNotFoundError: + updates_data = [] + +users_dict: dict[str, dict[str, str]] = {} +user: dict[str, str] +for user in users_data: + if "name" in user: + name: str = user["name"] + user_info: dict[str, str] = {k: v for k, v in user.items() if k != "name"} + users_dict[name] = user_info + +update: dict[str, str] +for update in updates_data: + if "name" in update: + name_2: str = update["name"] + update_info: dict[str, str] = {k: v for k, v in update.items() if k != "name"} + + if name_2 in users_dict: + key_: str + value_: str + for key_, value_ in update_info.items(): + if key_ in users_dict[name_2]: + users_dict[name_2][key_] = max(users_dict[name_2][key_], value_) + else: + users_dict[name_2][key_] = value_ + else: + users_dict[name_2] = update_info + +with open(users_file, "w", encoding="utf-8") as file: + json.dump(users_dict, file, ensure_ascii=False, indent=4) + + +# - + +# ## Поставь себя на моё место. +# +# - Сегодня вы — Ядекс.Контест. +# - Напишите программу, которая рассчитывает итоговый балл за выполнение задания на основе файла с тестами и входного потока с ответами. +# - Вашему решению доступен файл scoring.json, в котором содержится информация о системе проверки. +# - Основой системы является список групп тестов. +# - Каждая группа представляет собой объект с полями: +# - points — количество очков, которое можно получить за прохождение данной группы; +# - tests — список объектов с описанием конкретного теста. +# - Объект описывающий тест содержит поля: +# - input — строка входных данных теста; +# - pattern — строка ожидаемых в качестве ответа. +# - В стандартный поток ввода вашего решения передаются ответы, полученные от тестируемой программы. +# - Формат ввода +# - В стандартный поток ввода передаются строки — ответы тестируемой программы на каждый тест. +# - В файле scoring.json содержится информация о тестах задачи. +# - Формат вывода +# - Одно число — количество полученных тестируемой программой баллов. +# - Если группа тестов не была пройдена полностью, то за данную группу ставится пропорциональный балл. +# - Гарантируется, что баллы за группу кратны количеству тестов в ней. + + +# + +class TestCase(TypedDict): + """Представляет один тестовый случай с шаблоном для сравнения.""" + + pattern: str + + +class Group(TypedDict): + """Представляет группу тестовых случаев с associated баллами.""" + + points: int + tests: list[TestCase] + + +with open("scoring.json", encoding="utf-8") as file: + groups: list[Group] = json.load(file) + +answers: list[str] = [] +while True: + try: + line_o: str = input().strip() + if line_o: + answers.append(line_o) + except EOFError: + break + +answer_iter: Iterator[str] = iter(answers) +total_score: float = 0 + +for group in groups: + points_per_group: int = group["points"] + tests: list[TestCase] = group["tests"] + tests_count: int = len(tests) + + correct_count: int = 0 + + for test in tests: + try: + user_answer: str = next(answer_iter).strip() + expected_answer: str = test["pattern"].strip() + + if user_answer == expected_answer: + correct_count += 1 + except StopIteration: + break + + group_score: float = (points_per_group / tests_count) * correct_count + total_score += group_score + +print(int(total_score)) + + +# - + +# ## Найдётся всё 3.0. +# +# - А теперь давайте вновь напишем компонент поисковой системы — на этот раз с учётом формата и содержимого файлов. Сначала вводится поисковый запрос. Затем — список файлов, в которых нужно искать. Нужно найти, в каких файлах встречается запрос, без учёта регистра и с учётом любых пробелов и переводов строки как обычных пробелов. +# - Формат ввода +# - Сначала вводится поисковый запрос. +# - Затем вводятся имена файлов, среди которых следует произвести поиск. +# - Формат вывода +# - Выведите все имена файлов, в которых есть поисковая строка без учета регистра и повторяющихся пробельных символов. +# - Если ни в одном файле информация не была найдена, выведите 404. Not Found. +# - Примечание +# - Система поиска должна обрабатывать строки "a    b", "a b" и "a\nb" как одинаковые. + + +# + +def normalize(text_norm: str) -> str: + """Приводит текст к нижнему регистру, заменяет пробелы.""" + return " ".join(text_norm.lower().split()) + + +def search_files_by_content() -> None: + """Основная функция поиска файлов по содержимому.""" + search_query: str = input().strip() + normalized_query: str = normalize(search_query) + + filenames: list[str] = [] + while True: + try: + filename_norm: str = input().strip() + if filename_norm: + filenames.append(filename_norm) + except EOFError: + break + + found_files: list[str] = [] + for filename_norm in filenames: + try: + with open(filename_norm, encoding="utf-8") as file_s: + content_s: str = file_s.read() + normalized_content: str = normalize(content_s) + if normalized_query in normalized_content: + found_files.append(filename_norm) + except FileNotFoundError: + continue + except ValueError as e: + print(f"Ошибка значения: {e}") + except TypeError as e: + print(f"Ошибка типа данных: {e}") + + if found_files: + for filename_norm in found_files: + print(filename_norm) + else: + print("404. Not Found") + + +if __name__ == "__main__": + search_files_by_content() + + +# - + +# ## Прятки. +# +# - Нам дали зашифрованный файл, и сказали, что нужно «выдернуть» младший байт из каждого символа — так восстанавливается спрятанное сообщение. +# - Справка: +# - Стеганография — способ передачи или хранения информации с учётом сохранения в тайне самого факта такой передачи (хранения). +# - В отличие от криптографии, которая скрывает содержимое тайного сообщения, стеганография скрывает сам факт его существования. Как правило сообщение будет выглядеть как что-либо иное, например, как изображение, статья, список покупок, письмо или судоку. Стеганографию обычно используют совместно с методами криптографии, таким образом, дополняя её. +# - Нам был дан файл со скрытым текстом. И было сообщено, что для выделения полезной информации, нужно из каждого кода символа в тексте «выдернуть» младший байт. Это и будет код символа полезной информации. Однако есть одно «но». Если код символа меньше 128 — это и есть полезная информация. +# - Разработайте программу, которая из текстового файла выделяет полезную информацию. +# - Формат ввода +# - В файле secret.txt хранится текст. +# - Формат вывода +# - Выведите спрятанное сообщение. + + +# + +def extract_hidden_message(filename_ext: str) -> str: + """Извлекает скрытое сообщение из файла. + + Для каждого символа: + - Если код символа < 128, это полезный символ + - Иначе извлекаем младший байт (младшие 8 бит). + """ + try: + with open(filename_ext, encoding="utf-8") as file_ext: + content_ext: str = file_ext.read() + except FileNotFoundError: + print(f"Файл {filename_ext} не найден") + return "" + except ValueError as e: + print(f"Ошибка значения: {e}") + return "" + except TypeError as e: + print(f"Ошибка типа данных: {e}") + return "" + + hidden_message: list[str] = [] + char_ext: str + for char_ext in content_ext: + code: int = ord(char_ext) + if code < 128: + hidden_message.append(char_ext) + else: + low_byte: int = code & 0xFF + hidden_message.append(chr(low_byte)) + return "".join(hidden_message) + + +if __name__ == "__main__": + filename_txt: str = "secret.txt" + message: str = extract_hidden_message(filename_txt) + print(message) + + +# - + +# ## Сколько вешать в байтах?. +# +# - Перед этим — лёгкая утилита: нужно определить размер файла и отформатировать его по ГОСТу. Это пригодится для работы с логами, архивами или системными файлами. +# - В нашей странице согласно ГОСТ 8.417-2002 объём информации измеряется в следующих единицах: +# - бит (б) +# - Байт (Б) = 8 бит +# - Килобайт (КБ) = 1024 Б +# - Мегабайт (МБ) = 1024 КБ +# - Гигабайт (ГБ) = 1024 МБ +# - Напишите программу, которая вычисляет объём заданного файла. +# - Формат ввода +# - Вводится одно имя файла. +# - Формат вывода +# - Выведите объём файла в соответствующих единицах измерения. +# - При получении дробного значения, произведите округление вверх. + + +# + +def format_file_size(size_bytes: int) -> str: + """Форматирует размер файла согласно ГОСТ 8.417-2002. + + Округляет дробные значения вверх. + """ + if size_bytes == 0: + return "0Б" + units = ["Б", "КБ", "МБ", "ГБ"] + size: float = float(size_bytes) + unit: str + for unit in units: + if size < 1024: + if unit == "Б": + return f"{math.ceil(size)}{unit}" + size /= 1024 + return f"{math.ceil(size)}ТБ" + + +def display_file_size() -> None: + """Запрашивает имя файла и выводит его размер.""" + filename_dis: str = input().strip() + try: + file_size: int = os.path.getsize(filename_dis) + formatted_size: str = format_file_size(file_size) + print(formatted_size) + except FileNotFoundError: + print(f"Файл '{filename_dis}' не найден") + except OSError as e: + print(f"Ошибка доступа к файлу: {e}") + except ValueError as e: + print(f"Ошибка значения: {e}") + except TypeError as e: + print(f"Ошибка типа данных: {e}") + + +if __name__ == "__main__": + display_file_size() + + +# - + +# ## Это будет наш секрет. +# +# - Давайте реализуем шифр Цезаря, который сдвигает латинские буквы по кругу. Работать будем с текстом в файле — это приближает задачу к реальным случаям шифрования данных. Шифр Цезаря, также известный как шифр сдвига, код Цезаря — один из самых простых и наиболее широко известных методов шифрования. Он назван в честь римского полководца Гая Юлия Цезаря, использовавшего его для секретной переписки со своими генералами. Давайте реализуем эту систему шифрования. Однако для простоты мы будем сдвигать только латинские символы по кругу. +# - Формат ввода +# - Вводится размер сдвига для шифрования. +# - В файле public.txt содержится текст на английском языке. +# - Формат вывода +# - В файл private.txt запишите зашифрованный текст. + + +# + +def caesar_cipher(text_: str, shift: int) -> str: + """Шифрует текст шифром Цезаря. + + Сдвигает только латинские буквы. + """ + result_ = [] + for char_2 in text_: + if "a" <= char_2 <= "z": + shifted = chr((ord(char_2) - ord("a") + shift) % 26 + ord("a")) + result_.append(shifted) + elif "A" <= char_2 <= "Z": + shifted = chr((ord(char_2) - ord("A") + shift) % 26 + ord("A")) + result_.append(shifted) + else: + result_.append(char_2) + return "".join(result_) + + +def encrypt_file() -> None: + """Читает текст из public.txt, шифрует его и записывает в private.txt.""" + try: + shift = int(input().strip()) + with open("public.txt", encoding="utf-8") as file_2: + original_text = file_2.read() + encrypted_text = caesar_cipher(original_text, shift) + with open("private.txt", "w", encoding="utf-8") as file_2: + file_2.write(encrypted_text) + except FileNotFoundError: + print("Файл public.txt не найден") + except ValueError: + print("Введите целое число для сдвига") + except TypeError as e: + print(f"Ошибка типа данных: {e}") + + +if __name__ == "__main__": + encrypt_file() + + +# - + +# ## Файловая сумма. +# +# - Теперь вы умеете обрабатывать текстовые файлы, JSON, бинарные данные и строить консольные утилиты. Завершим на высокой ноте — вы вычислите сумму чисел в бинарном файле, представленных 2-байтными значениями. +# - Вы скорее всего знаете, что существуют не только текстовые файлы. Различные форматы данных предусматривают специальное кодирование. Например, BMP изображения хранят некоторую заголовочную информацию и цвета всех пикселей в виде чисел. Давайте поработаем с такими данными. Нам дают файл в некотором формате, назовем его NUM. Он содержит список 2-байтных чисел. Для простоты будем считать, что отрицательных чисел не существует. Напишите программу, которая вычисляет сумму всех записанных в файле чисел в 2-байтном диапазоне. +# - Формат ввода +# - В файле numbers.num содержатся числа в указанном формате. +# - Формат вывода +# - Одно число — сумма всех чисел в файле на 2-байтном диапазоне. +# - Примечание +# - Для простоты файлы в примерах записаны в HEX формате. В этом виде файл представляется как последовательность четырехзначных шестнадцатеричных чисел. +# - В первом примере записано 5 шестнадцатеричных чисел: 1, 2, 3, 4, 5. Их сумма равна 15. +# - Во втором — 255 и 257. Их сумма равна 512. +# - Файл из примеров в изначальном виде можно загрузить здесь: +# - Первый пример +# - Второй пример +# - Если вы хотите изучить принцип хранения целых чисел в ЭВМ, советуем почитать про прямой, обратный и дополнительный коды. + + +# + +def task_20() -> None: + """Суммирует 2-байтовые числа из файла с обрезкой до 16 бит.""" + with open("numbers.num", "rb") as src: + payload: bytes = src.read() + usable_len: int = len(payload) - (len(payload) % 2) + total_sum_t: int = sum( + int.from_bytes(payload[i : i + 2], "big", signed=False) + for i in range(0, usable_len, 2) + ) + print(total_sum_t % (1 << 16)) + + +task_20() diff --git a/python/yandex/strings_tuples_lists_3_1.ipynb b/python/yandex/strings_tuples_lists_3_1.ipynb new file mode 100644 index 00000000..8d519dc9 --- /dev/null +++ b/python/yandex/strings_tuples_lists_3_1.ipynb @@ -0,0 +1,1128 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "id": "39abab84", + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"Строки, кортежи, списки.\n", + "\n", + "В этом параграфе мы начнём знакомство с коллекциями —\n", + "специальными типами данных, которые позволяют хранить\n", + "и обрабатывать несколько значений одновременно.\n", + "Мы разберёмся, как обращаться к элементам коллекций,\n", + "как проходить по ним в цикле, использовать срезы и\n", + "встроенные методы. А ещё научимся отличать изменяемые\n", + "коллекции от неизменяемых — это важно для понимания, как\n", + "работает память в Python. Рассмотрим упорядоченные\n", + "коллекции, индексацию, методы и функции для их обработки.\n", + "\"\"\"" + ] + }, + { + "cell_type": "markdown", + "id": "bb83a7c4", + "metadata": {}, + "source": [ + "### Азбука\n", + "- Малыши начали учить алфавит. Воспитатель попросил их назвать слова, начинающиеся только с букв а, б или в.\n", + "- Напишите программу, которая проверит, что все введённые слова соответствуют этим правилам.\n", + "- Формат ввода\n", + "- Вводится натуральное число N — количество слов, названных детьми.\n", + "- В каждой из последующих N строк записано по одному слову строчными буквам.\n", + "- Формат вывода\n", + "- YES — если все слова начинаются с нужной буквы.\n", + "- NO — если хотя бы одно слово начинается не с нужной буквы." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "e9788c52", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "NO\n" + ] + } + ], + "source": [ + "import sys\n", + "from math import factorial\n", + "\n", + "\n", + "def abc() -> None:\n", + " \"\"\"abc.\"\"\"\n", + " number_abc: int = int(input())\n", + " count_abc: int = 0\n", + " for _ in range(number_abc):\n", + " word_abc: str = input()\n", + " if word_abc[0] == \"а\" or word_abc[0] == \"б\" or word_abc[0] == \"в\":\n", + " count_abc += 1\n", + " print(\"YES\" if count_abc == number_abc else \"NO\")\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " abc()" + ] + }, + { + "cell_type": "markdown", + "id": "009148f7", + "metadata": {}, + "source": [ + "### Кручу-верчу\n", + "- Иногда в текстовых редакторах возникает необходимость повернуть строку — то есть сделать из горизонтальной записи вертикальную. В Python такая функция по-умолчанию отсутствует, но это не проблема: мы напишем её сами!\n", + "- Напишите программу, которая преобразует введённую стоку из горизонтальной записи в вертикальную.\n", + "- Формат ввода\n", + "- Одна строка.\n", + "- Формат вывода\n", + "- Вертикальное представление введённой строки." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "0be6d697", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "П\n", + "р\n", + "и\n", + "в\n", + "е\n", + "т\n" + ] + } + ], + "source": [ + "def twisting_turning() -> None:\n", + " \"\"\"twisting_turning.\"\"\"\n", + " word: str = input()\n", + " for _, char in enumerate(word):\n", + " print(char)\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " twisting_turning()" + ] + }, + { + "cell_type": "markdown", + "id": "46f904cc", + "metadata": {}, + "source": [ + "### Анонс новости\n", + "- Местная редакция заказала у вас систему для отображения заголовков. Чтобы лента была удобной, слишком длинные заголовки нужно сокращать и добавлять многоточие.\n", + "- Напишите программу, которая сокращает заголовки до требуемой длины. Если заголовок длиннее, он должен быть усечён и завершён многоточием .... Если заголовок помещается в заданную длину — выводите его без изменений.\n", + "- Формат ввода\n", + "- Вводится натуральное число L — необходимая длина заголовка.\n", + "- Вводится натуральное число N — количество заголовков, которые требуется сократить.\n", + "- В каждой из последующих N строк записано по одному заголовку.\n", + "- Формат вывода\n", + "- Сокращённые заголовки.\n", + "- Примечание\n", + "- Многоточие учитывается при подсчёте длины заголовка." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "97145cf0", + "metadata": {}, + "outputs": [], + "source": [ + "def news_announcement() -> None:\n", + " \"\"\"news_announcement.\"\"\"\n", + " words_news: int = int(input())\n", + " count_news: int = int(input())\n", + " for _ in range(count_news):\n", + " text_news: str = input()\n", + " if len(text_news) <= words_news:\n", + " print(text_news)\n", + " else:\n", + " print(f\"{text_news[:(words_news - 3)]}...\")\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " news_announcement()" + ] + }, + { + "cell_type": "markdown", + "id": "ecef102c", + "metadata": {}, + "source": [ + "### Очистка данных\n", + "- Работая с реальными текстовыми файлами и логами, почти всегда приходится сталкиваться с «грязными» данными: лишними символами, мусорными строками, ошибками форматирования. В этой задаче вы поможете местному провайдеру почистить отчёты: устраните системные ошибки и оставите только полезную информацию.\n", + "- Напишите программу, которая обрабатывает лог-файл, состоящий из строк, и: удаляет две решётки ## в начале строки, если они есть; удаляет всю строку, если она заканчивается на @@@. Ввод продолжается, пока не встретится пустая строка.\n", + "- Формат ввода\n", + "- Вводятся строки отчёта. Признаком завершения ввода считается пустая строка.\n", + "- Формат вывода\n", + "- Очищенные данные." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "d2c074c1", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Hello, world\n", + "Goodbye\n", + "\n" + ] + } + ], + "source": [ + "def data_cleaning() -> None:\n", + " \"\"\"data_cleaning.\"\"\"\n", + " while True:\n", + " text_clean: str = input()\n", + " if text_clean[:2] == \"##\" and text_clean[-3::] != \"@@@\":\n", + " print(text_clean[2:])\n", + " elif text_clean[:2] != \"##\" and text_clean[-3::] != \"@@@\":\n", + " print(text_clean)\n", + " if text_clean == \"\":\n", + " break\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " data_cleaning()" + ] + }, + { + "cell_type": "markdown", + "id": "e5c6e23e", + "metadata": {}, + "source": [ + "### А роза упала на лапу Азора 4.0\n", + "- Продолжаем исследовать симметричные строки — палиндромы. Палиндром — это строка, которая читается одинаково слева направо и справа налево. Например: анна, казак, топот. А вот мама — уже не палиндром.\n", + "- Напишите программу, которая определяет, относится ли введённая строка к палиндромам.\n", + "- Формат ввода\n", + "- Вводится строка.\n", + "- Формат вывода\n", + "- Требуется вывести YES — если введенная строка является палиндромом, иначе – NO." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "34e5f8c9", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "YES\n" + ] + } + ], + "source": [ + "def palindrome_4() -> None:\n", + " \"\"\"palindrome_4.\"\"\"\n", + " text_pal: str = input()\n", + " if text_pal == text_pal[::-1]:\n", + " print(\"YES\")\n", + " else:\n", + " print(\"NO\")\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " palindrome_4()" + ] + }, + { + "cell_type": "markdown", + "id": "01e9c74a", + "metadata": {}, + "source": [ + "### Зайка — 6\n", + "- Очередное семейное путешествие — и снова игра «Кто первым увидит зверушку за окном». Сегодня в фокусе внимания — зайки. Поможем ребятам подсчитать, сколько заек они увидели!\n", + "- Напишите программу, которая по описаниям местности определяет, сколько раз встретилась зайка.\n", + "- Формат ввода\n", + "- В первой строке записано натуральное число N — количество выделенных придорожных местностей.\n", + "- В каждой из N последующих строк записано описание придорожной местности.\n", + "- Формат вывода\n", + "- Количество заек." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "fe66bc19", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3\n" + ] + } + ], + "source": [ + "def banny_6() -> None:\n", + " \"\"\"banny_6.\"\"\"\n", + " count_banny: int = int(input())\n", + " count_pet: int = 0\n", + " for _ in range(count_banny):\n", + " text_banny: str = input()\n", + " cnt: int = text_banny.count(\"зайка\")\n", + " count_pet += cnt\n", + " print(count_pet)\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " banny_6()" + ] + }, + { + "cell_type": "markdown", + "id": "b32bf4b1", + "metadata": {}, + "source": [ + "### А и Б сидели на трубе\n", + "- Ввод данных от пользователя не всегда бывает удобным — особенно, если речь идёт о строках, в которых содержатся сразу несколько чисел. В этой задаче вы потренируетесь извлекать данные из строки и преобразовывать их для дальнейших вычислений. Ведь даже А и Б из детского стишка порой нуждаются в вычислениях!\n", + "- Напишите программу, которая считывает два целых числа, введённые в одной строке через пробел, и выводит их сумму.\n", + "- Формат ввода\n", + "- Два целых числа, разделённые пробелом.\n", + "- Формат вывода\n", + "- Одно целое число — сумма переданных чисел." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e674bb28", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "4\n" + ] + } + ], + "source": [ + "def a_b_sum() -> None:\n", + " \"\"\"a_b_sum.\"\"\"\n", + " first: str\n", + " second: str\n", + " first, second = input().split()\n", + " print(int(first) + int(second))\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " a_b_sum()" + ] + }, + { + "cell_type": "markdown", + "id": "f03e7f22", + "metadata": {}, + "source": [ + "### Зайка — 7\n", + "- Поезд мчится вдоль берёзок, елочек и сосен, а дети за окном снова ищут любимых зверушек — заек! На этот раз — задача посложнее: нужно не только найти, но и точно указать, где именно в строке прячется первый заяц!\n", + "- Напишите программу, которая для каждой строки описания местности: выводит позицию первого появления слова зайка (нумерация начинается с 1); если в строке нет зайки — выведите: Заек нет =(.\n", + "- Формат ввода\n", + "- В первой строке записано натуральное число N — количество выделенных придорожных местностей.\n", + "- В каждой из N последующих строк записано описание придорожной местности.\n", + "- Формат вывода\n", + "- Для каждой строки нужно найти положение первого зайки.\n", + "- Если в строке нет заек, то об этом нужно непременно сообщить.\n", + "- Примечание\n", + "- Для символов в строках используйте нумерацию с 1." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "7ec140c9", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "16\n", + "7\n", + "Заек нет =(\n" + ] + } + ], + "source": [ + "def banny_7() -> None:\n", + " \"\"\"banny_7.\"\"\"\n", + "\n", + "\n", + "count_ban: int = int(input())\n", + "for _ in range(count_ban):\n", + " text_ban: str = input()\n", + " position: int = text_ban.find(\"зайка\")\n", + " if position != -1:\n", + " print(position + 1)\n", + " else:\n", + " print(\"Заек нет =(\")\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " banny_7()" + ] + }, + { + "cell_type": "markdown", + "id": "f8f1ae07", + "metadata": {}, + "source": [ + "### Без комментариев\n", + "- Комментарии — важная часть кода, особенно если вы хотите, чтобы другие поняли вашу логику. Но когда программа запускается, интерпретатор просто игнорирует комментарии — всё, что начинается с #. В этой задаче вы сами выступите в роли интерпретатора: научитесь очищать строки кода от комментариев!\n", + "- Напишите программу, которая удаляет комментарии из кода. Если строка состоит только из комментария — её не нужно выводить вообще.\n", + "- Формат ввода\n", + "- Вводятся строки программы. Признаком остановки является пустая строка.\n", + "- Формат вывода\n", + "- Каждую строку нужно очистить от комментариев. А если комментарий — вся строка, то выводить её не надо.\n", + "- Примечание\n", + "- Символ # в данной задаче используется только для комментариев." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "4ba88e7a", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "print(\"What is your name?\")\n", + "name = input()\n", + "print(f\"Hello, {name}!\")\n" + ] + } + ], + "source": [ + "def no_comments() -> None:\n", + " \"\"\"no_comments.\"\"\"\n", + " while True:\n", + " line_com: str = input()\n", + " if line_com == \"\":\n", + " break\n", + " if line_com.strip().startswith(\"#\"):\n", + " continue\n", + " index_com: int = line_com.find(\"#\")\n", + " if index_com != -1:\n", + " line_com = line_com[:index_com]\n", + " line_com = line_com.rstrip()\n", + " if line_com != \"\":\n", + " print(line_com)\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " no_comments()" + ] + }, + { + "cell_type": "markdown", + "id": "5dc07ac8", + "metadata": {}, + "source": [ + "### Частотный анализ на минималках\n", + "- Частотный анализ — это метод подсчёта, какие символы (или слова) чаще всего встречаются в тексте. Это важнейший инструмент взлома многих классических шифров — от шифра Цезаря и до шифровальной машины «Энигма».В этой задаче вы реализуете простейшую версию частотного анализа:\n", + "выясните, какая буква встречается чаще других в тексте.\n", + "- Напишите программу, которая читает строки до тех пор, пока не встретится строка 'ФИНИШ', и выводит наиболее часто встречающуюся букву (в нижнем регистре).\n", + "- Формат ввода\n", + "- Вводятся строки, пока не будет введена строка «ФИНИШ».\n", + "- Формат вывода\n", + "- Выводится один символ в нижнем регистре — наиболее часто встречающийся во введённой строке.\n", + "- Примечания\n", + "- Пробелы в анализе не участвуют. Если в результате анализа получено несколько ответов, следует вывести первый по алфавиту. У данной задачи множество \"быстрых\" способов решения, но в этом параграфе мы просим вас сосредоточиться на использовании строк и списков." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "66eb4b74", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "б\n" + ] + } + ], + "source": [ + "def min_analysis() -> None:\n", + " \"\"\"min_analysis.\"\"\"\n", + " letters_anal: list[str] = []\n", + " counts_anal: list[int] = []\n", + "\n", + " while True:\n", + " row_anal: str = input()\n", + " if row_anal == \"ФИНИШ\":\n", + " break\n", + " for char_anal in row_anal:\n", + " letter_anal: str = char_anal.lower()\n", + " if letter_anal == \" \":\n", + " continue\n", + " if letter_anal in letters_anal:\n", + " index_anal: int = letters_anal.index(letter_anal)\n", + " counts_anal[index_anal] += 1\n", + " else:\n", + " letters_anal.append(letter_anal)\n", + " counts_anal.append(1)\n", + " max_anal_count: int = max(counts_anal) if counts_anal else 0\n", + " max_anal_letters: list[str] = []\n", + " for i_an, letter in enumerate(letters_anal):\n", + " if counts_anal[i_an] == max_anal_count:\n", + " max_anal_letters.append(letter)\n", + " if max_anal_letters:\n", + " max_anal_letters.sort()\n", + " print(max_anal_letters[0])\n", + " else:\n", + " print(\"\")\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " min_analysis()" + ] + }, + { + "cell_type": "markdown", + "id": "52e44be0", + "metadata": {}, + "source": [ + "### Найдётся всё\n", + "- Теперь — к делу. Поиск информации — одна из самых важных задач в наше время. Предлагаем потренироваться в работе со списками строк, поиском подстроки, и игнорированием регистра. Создайте мини-поисковик, который по ключевому слову покажет подходящие заголовки страниц.\n", + "- Формат ввода\n", + "- Вводится натуральное число N — количество страниц, среди которых требуется произвести поиск.\n", + "- В каждой из последующих N строк записаны заголовки страниц. В последней строке записан поисковый запрос.\n", + "- Формат вывода\n", + "- Вывести все заголовки страниц, в которых присутствует поисковый запрос (регистр не имеет значения). Порядок заголовков должен сохраниться." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2b5fc124", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Яндекс выпустил задачник по программированию\n", + "Как заказать Яндекс.Такси?!\n" + ] + } + ], + "source": [ + "def everything() -> None:\n", + " \"\"\"everything.\"\"\"\n", + " every_count: int = int(input())\n", + " every_list: list[str] = []\n", + " every_name: str = \"\"\n", + " for i_eve in range(every_count + 1):\n", + " every_text: str = input()\n", + " if i_eve < every_count:\n", + " every_list.append(every_text)\n", + " elif i_eve == every_count:\n", + " every_name = every_text\n", + " for every_string in every_list:\n", + " if every_name.lower() in every_string.lower():\n", + " print(every_string)\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " everything()" + ] + }, + { + "cell_type": "markdown", + "id": "7be6b628", + "metadata": {}, + "source": [ + "### Меню питания\n", + "- В детском саду ежедневно подают новую кашу на завтрак. Каши чередуются в следующем порядке:\n", + "- Манная;\n", + "- Гречневая;\n", + "- Пшённая;\n", + "- Овсяная;\n", + "- Рисовая.\n", + "- Ваша задача — составить расписание каш на ближайшие дни, чтобы повара знали, что готовить.\n", + "- Напишите программу, которая по числу дней N выводит, какие каши будут подаваться в ближайшие N дней.\n", + "- Формат ввода\n", + "- Вводится натуральное число N — количество дней.\n", + "- Формат вывода\n", + "- Вывести список каш в порядке подачи." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3abaebe2", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Манная\n", + "Гречневая\n", + "Пшённая\n", + "Овсяная\n", + "Рисовая\n", + "Манная\n", + "Гречневая\n", + "Пшённая\n", + "Овсяная\n", + "Рисовая\n", + "Манная\n", + "Гречневая\n" + ] + } + ], + "source": [ + "def food_menu() -> None:\n", + " \"\"\"food_menu.\"\"\"\n", + " count_day_menu: int = int(input())\n", + " my_list_menu: list[str] = [\"Манная\", \"Гречневая\", \"Пшённая\", \"Овсяная\", \"Рисовая\"]\n", + "\n", + " for i_food in range(1, count_day_menu + 1):\n", + " word_index_menu: int = (i_food - 1) % len(my_list_menu)\n", + " current_word_menu: str = my_list_menu[word_index_menu]\n", + " print(current_word_menu)\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " food_menu()" + ] + }, + { + "cell_type": "markdown", + "id": "ee53c8b1", + "metadata": {}, + "source": [ + "### Массовое возведение в степень\n", + "- Часто возникают трудности, когда нужно выполнить множество однообразных операций. В таких случаях люди желают упростить себе работу. Напишите программу, которая возводит в заданную степень все числа, что передали пользователи.\n", + "- Формат ввода\n", + "- Вводится натуральное число N — количество чисел.\n", + "- В каждой из последующих N строк записано по одному числу.\n", + "- В последней строке записано натуральное число P — степень, в которую требуется возвести числа.\n", + "- Формат вывода\n", + "- Последовательность чисел, являющихся ответом." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "404a98c0", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "8\n", + "27\n", + "64\n" + ] + } + ], + "source": [ + "def exponentiation() -> None:\n", + " \"\"\"exponentiation.\"\"\"\n", + " number_of_numbers: int = int(input())\n", + " my_list: list[int] = []\n", + " number_power: int = 0\n", + " for i_expon in range(number_of_numbers + 1):\n", + " numbers: int = int(input())\n", + " if i_expon < number_of_numbers:\n", + " my_list.append(numbers)\n", + " elif i_expon == number_of_numbers:\n", + " number_power = numbers\n", + " for j_exp in my_list:\n", + " print(j_exp**number_power)\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " exponentiation()" + ] + }, + { + "cell_type": "markdown", + "id": "53809091", + "metadata": {}, + "source": [ + "### Массовое возведение в степень 2.0\n", + "- Иногда приходится выполнять однотипные действия над целой группой чисел — например, возвести каждое из них в заданную степень. Вручную это делать долго и утомительно, особенно если чисел много. Пора автоматизировать процесс!\n", + "- Напишите программу, которая возводит в заданную степень все числа, переданные пользователем.\n", + "- Формат ввода\n", + "- В первой строке записана последовательность натуральных чисел, разделённых пробелами.Во второй строке записано натуральное число P — степень, в которую требуется возвести числа.\n", + "- Формат вывода\n", + "- Последовательность чисел, являющихся ответом. Числа вывести в одну строку через пробел." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c0b8c32f", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "8 27 64\n" + ] + } + ], + "source": [ + "def exponentiation_2() -> None:\n", + " \"\"\"exponentiation_2.\"\"\"\n", + " number_of_numbers_exp: int = 2\n", + " my_list_exp: list[int] = []\n", + " number_power_exp: int = 0\n", + "\n", + " for i_exp in range(number_of_numbers_exp):\n", + " numbers_exp: list[str] = input().split()\n", + " if i_exp == 0:\n", + " my_list_exp = [int(x) for x in numbers_exp]\n", + " else:\n", + " number_power_exp = int(numbers_exp[0])\n", + " result_exp: list[str] = []\n", + " for num in my_list_exp:\n", + " numb_exp: int = num**number_power_exp\n", + " result_exp.append(str(numb_exp))\n", + " print(\" \".join(result_exp))\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " exponentiation_2()" + ] + }, + { + "cell_type": "markdown", + "id": "d66b0f5f", + "metadata": {}, + "source": [ + "### НОД 3.0\n", + "- Из местного НИИ снова обратились за помощью. Им снова нужно находить наибольший общий делитель (НОД) — теперь по целой строке чисел. Хорошо, что у нас есть опыт!\n", + "- Напишите программу, которая находит НОД всех чисел, введённых в одной строке через пробел.\n", + "- Формат ввода\n", + "- В единственной строке записывается последовательность натуральных чисел, разделённых пробелами.\n", + "- Формат вывода\n", + "- Требуется вывести одно натуральное число — НОД всех данных чисел.\n", + "- Примечание\n", + "- Самый распространенный способ поиска НОД — Алгоритм Эвклида." + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "1e128328", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "6\n" + ] + } + ], + "source": [ + "def nod_3() -> None:\n", + " \"\"\"nod_3.\"\"\"\n", + "\n", + "\n", + "numbers_list_nod: list[int] = list(map(int, input().split()))\n", + "if not numbers_list_nod:\n", + " print(0)\n", + "else:\n", + " current_gcd: int = numbers_list_nod[0]\n", + " for i in range(1, len(numbers_list_nod)):\n", + " numb_nod: int = numbers_list_nod[i]\n", + " a_nod: int = current_gcd\n", + " b_nod: int = numb_nod\n", + " while b_nod:\n", + " a_nod, b_nod = b_nod, a_nod % b_nod\n", + " current_gcd = a_nod\n", + " if current_gcd == 1:\n", + " break\n", + " print(current_gcd)\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " nod_3()" + ] + }, + { + "cell_type": "markdown", + "id": "5e027667", + "metadata": {}, + "source": [ + "### Анонс новости 2.0\n", + "- Вы снова работаете над лентой новостей для сайта. Теперь заголовки могут занимать несколько строк, но при этом всё равно нужно соблюдать лимит: если заголовок слишком длинный — он должен быть сокращён и завершён многоточием .... Эта задача поможет вам научиться учитывать длину строк, переносы и условия обрезки текста.\n", + "- Напишите программу, которая по заданному количеству строк и максимально допустимой длине:выводит заголовок, при необходимости обрезая его; если заголовок слишком длинный — заменяет последние символы на ...; если строки заканчиваются слишком коротко, ... может перейти в предыдущую строку.\n", + "- Формат ввода\n", + "- Вводится натуральное число L — необходимая длина заголовка.\n", + "- Вводится натуральное число N — количество строк в заголовке новости.\n", + "- В каждой из последующих N строк записано по одной строке заголовка.\n", + "- Формат вывода\n", + "- Сокращённый заголовок.\n", + "- Примечание\n", + "- Многоточие учитывается при подсчёте длины заголовка. Символ перевода строки при подсчёте длины не учитывается." + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "8526dbdc", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Энтузиаст написал программу для управления громкостью с помощью жестов, чтоб не вставать с дивана\n", + "Благодаря ей он может регулировать громкость...\n" + ] + } + ], + "source": [ + "def news_announcement_2() -> None:\n", + " \"\"\"news_announcement_2.\"\"\"\n", + " max_length_an: int = int(input())\n", + " lines_an: list[str] = []\n", + "\n", + " for _ in range(int(input())):\n", + " lines_an.append(input())\n", + "\n", + " for line_an in lines_an:\n", + " if max_length_an > 3:\n", + " if len(line_an) >= max_length_an - 3:\n", + " line_an = line_an[: max_length_an - 3] + \"...\"\n", + " else:\n", + " if max_length_an == 4:\n", + " line_an = line_an + \"...\"\n", + "\n", + " print(line_an)\n", + " max_length_an -= len(line_an)\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " news_announcement_2()" + ] + }, + { + "cell_type": "markdown", + "id": "7099899d", + "metadata": {}, + "source": [ + "### А роза упала на лапу Азора 5.0\n", + "- Мы снова возвращаемся к загадочным палиндромам — на этот раз с небольшим усложнением.Теперь нужно определить, является ли строка палиндромом без учёта регистра и пробелов. То есть А роза упала на лапу Азора — это палиндром, а Мама мыла раму — уже нет.\n", + "- Напишите программу, которая проверяет, является ли введённая строка палиндромом.\n", + "- Формат ввода\n", + "- Вводится строка.\n", + "- Формат вывода\n", + "- Если введённая строка относится к палиндрому, то вывести YES, а иначе — NO.\n", + "- Примечание\n", + "- При проверке не обращайте внимания на регистр и пробелы." + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "be0f4f56", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "YES\n" + ] + } + ], + "source": [ + "def palindrome_5() -> None:\n", + " \"\"\"palindrome_5.\"\"\"\n", + " text_palindrome: str = input().lower().replace(\" \", \"\")\n", + " if text_palindrome == text_palindrome[::-1]:\n", + " print(\"YES\")\n", + " else:\n", + " print(\"NO\")\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " palindrome_5()" + ] + }, + { + "cell_type": "markdown", + "id": "2160a30f", + "metadata": {}, + "source": [ + "### RLE\n", + "- RLE (Run-Length Encoding) — это способ сокращённой записи повторяющихся символов. Вместо длинной группы одинаковых символов записывается сам символ и число его повторений. Например, 99999 превращается в 9 5 («девять пять раз»).\n", + "- Напишите программу, которая получает строку из цифр и выводит её RLE-представление: последовательность пар «цифра — количество подряд идущих повторений».\n", + "- Формат ввода\n", + "- Строка цифр длиной не меньше 1.\n", + "- Формат вывода\n", + "- Пары: сама цифра и количество повторений цифры подряд во введённой строке, как описано в условии и показано в примере." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c99f7b86", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0 1\n", + "1 1\n", + "0 4\n", + "1 1\n", + "0 4\n", + "1 9\n", + "0 1\n", + "1 5\n", + "0 14\n", + "1 8\n" + ] + } + ], + "source": [ + "def rle() -> None:\n", + " \"\"\"rle.\"\"\"\n", + " text_rle: str = input().strip()\n", + " if not text_rle:\n", + " sys.exit()\n", + " reference_rle: str = text_rle[0]\n", + " counter_rle: int = 1\n", + " text_rle = text_rle[1:] + \"_\"\n", + "\n", + " result_rle: list[str] = []\n", + " for digit in text_rle:\n", + " if digit == reference_rle:\n", + " counter_rle += 1\n", + " else:\n", + " result_rle.append(f\"{reference_rle} {counter_rle}\")\n", + " reference_rle = digit\n", + " counter_rle = 1\n", + " print(\"\\n\".join(result_rle))\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " rle()" + ] + }, + { + "cell_type": "markdown", + "id": "8e1f8e76", + "metadata": {}, + "source": [ + "### Польский калькулятор\n", + "Сейчас — вызов на логику: реализуем калькулятор на основе обратной польской нотации (ОПН). В ОПН нет скобок и приоритета операций — всё вычисляется строго слева направо, с помощью стека. Вы добавляете числа в стек, а когда встречаете оператор (+, -, *) — извлекаете два последних числа, применяете операцию и возвращаете результат обратно в стек.\n", + "- Напишите программу, которая по введённому выражению в ОПН вычисляет результат.\n", + "- Формат ввода\n", + "- Вводится одна строка, содержащая разделённые пробелами целые числа и знаки операций +, -, *, которые вместе составляют корректное выражение в обратной польской нотации.\n", + "- Формат вывода\n", + "- Выводится одно целое число — результат вычисления выражения." + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "049e8067", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "-35\n" + ] + } + ], + "source": [ + "def polish_calculator() -> None:\n", + " \"\"\"polish_calculator.\"\"\"\n", + " expression: list[str] = input().split()\n", + " stack: list[int] = []\n", + " for token in expression:\n", + " if token in \"+-*\":\n", + " b_pol: int = stack.pop()\n", + " a_pol: int = stack.pop()\n", + " result: int\n", + " if token == \"+\":\n", + " result = a_pol + b_pol\n", + " elif token == \"-\":\n", + " result = a_pol - b_pol\n", + " elif token == \"*\":\n", + " result = a_pol * b_pol\n", + " stack.append(result)\n", + " else:\n", + " stack.append(int(token))\n", + " print(stack[0])\n", + "\n", + "\n", + "if __name__ == \"__main__\":\n", + " polish_calculator()" + ] + }, + { + "cell_type": "markdown", + "id": "37454bc9", + "metadata": {}, + "source": [ + "### Польский калькулятор — 2\n", + "- Напоследок последняя задача с ОПН. Операции, которые выполняются с одним значением, называются унарными, с двумя — бинарными, с тремя — тернарными.Давайте улучшим наш калькулятор, добавив поддержку следующих операций:\n", + "- бинарные:\n", + "- + (сложение),\n", + "- - (вычитание),\n", + "- * (умножение),\n", + "- / (деление нацело; для отрицательных чисел работает по тем же правилам, что и в Python);\n", + "- унарные:\n", + "- ~ (унарный минус — меняет знак),\n", + "- ! (факториал),\n", + "- (#) (клонирование — вернуть в стек значение дважды);\n", + "- тернарные:\n", + "- @ (возвращает в стек те же три значения, но в ином порядке: второе, третье, первое).\n", + "- Формат ввода\n", + "- Вводится одна строка, содержащая разделённые пробелами целые числа и знаки операций. Вместе они составляют корректное выражение в обратной польской нотации, не содержащее деления на ноль и взятия факториала от отрицательного числа.\n", + "- Формат вывода\n", + "- Выводится одно целое число — результат вычисления выражения." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "b9b60e2b", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "-10016\n" + ] + } + ], + "source": [ + "def polish_calculator_2() -> None:\n", + " \"\"\"polish_calculator_2.\"\"\"\n", + " tokens: list[str] = input().split()\n", + " stack: list[int] = []\n", + "\n", + " for token in tokens:\n", + " if token == \"+\":\n", + " right_operand = stack.pop()\n", + " left_operand = stack.pop()\n", + " stack.append(left_operand + right_operand)\n", + " continue\n", + "\n", + " if token == \"-\":\n", + " right_operand = stack.pop()\n", + " left_operand = stack.pop()\n", + " stack.append(left_operand - right_operand)\n", + " continue\n", + "\n", + " if token == \"*\":\n", + " right_operand = stack.pop()\n", + " left_operand = stack.pop()\n", + " stack.append(left_operand * right_operand)\n", + " continue\n", + "\n", + " if token == \"/\":\n", + " right_operand = stack.pop()\n", + " left_operand = stack.pop()\n", + " stack.append(left_operand // right_operand)\n", + " continue\n", + "\n", + " if token == \"~\":\n", + " operand = stack.pop()\n", + " stack.append(-operand)\n", + " continue\n", + "\n", + " if token == \"!\":\n", + " operand = stack.pop()\n", + " stack.append(factorial(operand))\n", + " continue\n", + "\n", + " if token == \"#\":\n", + " duplicate_value = stack.pop()\n", + " stack.append(duplicate_value)\n", + " stack.append(duplicate_value)\n", + " continue\n", + "\n", + " if token == \"@\":\n", + " third_value = stack.pop()\n", + " second_value = stack.pop()\n", + " first_value = stack.pop()\n", + " stack.append(second_value)\n", + " stack.append(third_value)\n", + " stack.append(first_value)\n", + " continue\n", + "\n", + " stack.append(int(token))\n", + "\n", + " print(stack[0])\n", + "\n", + "\n", + "polish_calculator_2()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "65140f2e", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.12" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/python/yandex/strings_tuples_lists_3_1.py b/python/yandex/strings_tuples_lists_3_1.py new file mode 100644 index 00000000..478aee2c --- /dev/null +++ b/python/yandex/strings_tuples_lists_3_1.py @@ -0,0 +1,712 @@ +"""Строки, кортежи, списки. + +В этом параграфе мы начнём знакомство с коллекциями — специальными типами данных, которые +позволяют хранить и обрабатывать несколько значений одновременно. Мы разберёмся, как +обращаться к элементам коллекций, как проходить по ним в цикле, использовать срезы и +встроенные методы. А ещё научимся отличать изменяемые коллекции от неизменяемых — это +важно для понимания, как работает память в Python. Рассмотрим упорядоченные коллекции, +индексацию, методы и функции для их обработки. +""" + +# ### Азбука +# - Малыши начали учить алфавит. Воспитатель попросил их назвать слова, начинающиеся только с букв а, б или в. +# - Напишите программу, которая проверит, что все введённые слова соответствуют этим правилам. +# - Формат ввода +# - Вводится натуральное число N — количество слов, названных детьми. +# - В каждой из последующих N строк записано по одному слову строчными буквам. +# - Формат вывода +# - YES — если все слова начинаются с нужной буквы. +# - NO — если хотя бы одно слово начинается не с нужной буквы. + +# + +import sys +from math import factorial + + +def abc() -> None: + """abc.""" + number_abc: int = int(input()) + count_abc: int = 0 + for _ in range(number_abc): + word_abc: str = input() + if word_abc[0] == "а" or word_abc[0] == "б" or word_abc[0] == "в": + count_abc += 1 + print("YES" if count_abc == number_abc else "NO") + + +if __name__ == "__main__": + abc() + + +# - + +# ### Кручу-верчу +# - Иногда в текстовых редакторах возникает необходимость повернуть строку — то есть сделать из горизонтальной записи вертикальную. В Python такая функция по-умолчанию отсутствует, но это не проблема: мы напишем её сами! +# - Напишите программу, которая преобразует введённую стоку из горизонтальной записи в вертикальную. +# - Формат ввода +# - Одна строка. +# - Формат вывода +# - Вертикальное представление введённой строки. + + +# + +def twisting_turning() -> None: + """twisting_turning.""" + word: str = input() + for _, char in enumerate(word): + print(char) + + +if __name__ == "__main__": + twisting_turning() + + +# - + +# ### Анонс новости +# - Местная редакция заказала у вас систему для отображения заголовков. Чтобы лента была удобной, слишком длинные заголовки нужно сокращать и добавлять многоточие. +# - Напишите программу, которая сокращает заголовки до требуемой длины. Если заголовок длиннее, он должен быть усечён и завершён многоточием .... Если заголовок помещается в заданную длину — выводите его без изменений. +# - Формат ввода +# - Вводится натуральное число L — необходимая длина заголовка. +# - Вводится натуральное число N — количество заголовков, которые требуется сократить. +# - В каждой из последующих N строк записано по одному заголовку. +# - Формат вывода +# - Сокращённые заголовки. +# - Примечание +# - Многоточие учитывается при подсчёте длины заголовка. + + +# + +def news_announcement() -> None: + """news_announcement.""" + words_news: int = int(input()) + count_news: int = int(input()) + for _ in range(count_news): + text_news: str = input() + if len(text_news) <= words_news: + print(text_news) + else: + print(f"{text_news[:(words_news - 3)]}...") + + +if __name__ == "__main__": + news_announcement() + + +# - + +# ### Очистка данных +# - Работая с реальными текстовыми файлами и логами, почти всегда приходится сталкиваться с «грязными» данными: лишними символами, мусорными строками, ошибками форматирования. В этой задаче вы поможете местному провайдеру почистить отчёты: устраните системные ошибки и оставите только полезную информацию. +# - Напишите программу, которая обрабатывает лог-файл, состоящий из строк, и: удаляет две решётки ## в начале строки, если они есть; удаляет всю строку, если она заканчивается на @@@. Ввод продолжается, пока не встретится пустая строка. +# - Формат ввода +# - Вводятся строки отчёта. Признаком завершения ввода считается пустая строка. +# - Формат вывода +# - Очищенные данные. + + +# + +def data_cleaning() -> None: + """data_cleaning.""" + while True: + text_clean: str = input() + if text_clean[:2] == "##" and text_clean[-3::] != "@@@": + print(text_clean[2:]) + elif text_clean[:2] != "##" and text_clean[-3::] != "@@@": + print(text_clean) + if text_clean == "": + break + + +if __name__ == "__main__": + data_cleaning() + + +# - + +# ### А роза упала на лапу Азора 4.0 +# - Продолжаем исследовать симметричные строки — палиндромы. Палиндром — это строка, которая читается одинаково слева направо и справа налево. Например: анна, казак, топот. А вот мама — уже не палиндром. +# - Напишите программу, которая определяет, относится ли введённая строка к палиндромам. +# - Формат ввода +# - Вводится строка. +# - Формат вывода +# - Требуется вывести YES — если введенная строка является палиндромом, иначе – NO. + + +# + +def palindrome_4() -> None: + """palindrome_4.""" + text_pal: str = input() + if text_pal == text_pal[::-1]: + print("YES") + else: + print("NO") + + +if __name__ == "__main__": + palindrome_4() + + +# - + +# ### Зайка — 6 +# - Очередное семейное путешествие — и снова игра «Кто первым увидит зверушку за окном». Сегодня в фокусе внимания — зайки. Поможем ребятам подсчитать, сколько заек они увидели! +# - Напишите программу, которая по описаниям местности определяет, сколько раз встретилась зайка. +# - Формат ввода +# - В первой строке записано натуральное число N — количество выделенных придорожных местностей. +# - В каждой из N последующих строк записано описание придорожной местности. +# - Формат вывода +# - Количество заек. + + +# + +def banny_6() -> None: + """banny_6.""" + count_banny: int = int(input()) + count_pet: int = 0 + for _ in range(count_banny): + text_banny: str = input() + cnt: int = text_banny.count("зайка") + count_pet += cnt + print(count_pet) + + +if __name__ == "__main__": + banny_6() + + +# - + +# ### А и Б сидели на трубе +# - Ввод данных от пользователя не всегда бывает удобным — особенно, если речь идёт о строках, в которых содержатся сразу несколько чисел. В этой задаче вы потренируетесь извлекать данные из строки и преобразовывать их для дальнейших вычислений. Ведь даже А и Б из детского стишка порой нуждаются в вычислениях! +# - Напишите программу, которая считывает два целых числа, введённые в одной строке через пробел, и выводит их сумму. +# - Формат ввода +# - Два целых числа, разделённые пробелом. +# - Формат вывода +# - Одно целое число — сумма переданных чисел. + + +# + +def a_b_sum() -> None: + """a_b_sum.""" + first: str + second: str + first, second = input().split() + print(int(first) + int(second)) + + +if __name__ == "__main__": + a_b_sum() + + +# - + +# ### Зайка — 7 +# - Поезд мчится вдоль берёзок, елочек и сосен, а дети за окном снова ищут любимых зверушек — заек! На этот раз — задача посложнее: нужно не только найти, но и точно указать, где именно в строке прячется первый заяц! +# - Напишите программу, которая для каждой строки описания местности: выводит позицию первого появления слова зайка (нумерация начинается с 1); если в строке нет зайки — выведите: Заек нет =(. +# - Формат ввода +# - В первой строке записано натуральное число N — количество выделенных придорожных местностей. +# - В каждой из N последующих строк записано описание придорожной местности. +# - Формат вывода +# - Для каждой строки нужно найти положение первого зайки. +# - Если в строке нет заек, то об этом нужно непременно сообщить. +# - Примечание +# - Для символов в строках используйте нумерацию с 1. + + +# + +def banny_7() -> None: + """banny_7.""" + + +count_ban: int = int(input()) +for _ in range(count_ban): + text_ban: str = input() + position: int = text_ban.find("зайка") + if position != -1: + print(position + 1) + else: + print("Заек нет =(") + + +if __name__ == "__main__": + banny_7() + + +# - + +# ### Без комментариев +# - Комментарии — важная часть кода, особенно если вы хотите, чтобы другие поняли вашу логику. Но когда программа запускается, интерпретатор просто игнорирует комментарии — всё, что начинается с #. В этой задаче вы сами выступите в роли интерпретатора: научитесь очищать строки кода от комментариев! +# - Напишите программу, которая удаляет комментарии из кода. Если строка состоит только из комментария — её не нужно выводить вообще. +# - Формат ввода +# - Вводятся строки программы. Признаком остановки является пустая строка. +# - Формат вывода +# - Каждую строку нужно очистить от комментариев. А если комментарий — вся строка, то выводить её не надо. +# - Примечание +# - Символ # в данной задаче используется только для комментариев. + + +# + +def no_comments() -> None: + """no_comments.""" + while True: + line_com: str = input() + if line_com == "": + break + if line_com.strip().startswith("#"): + continue + index_com: int = line_com.find("#") + if index_com != -1: + line_com = line_com[:index_com] + line_com = line_com.rstrip() + if line_com != "": + print(line_com) + + +if __name__ == "__main__": + no_comments() + + +# - + +# ### Частотный анализ на минималках +# - Частотный анализ — это метод подсчёта, какие символы (или слова) чаще всего встречаются в тексте. Это важнейший инструмент взлома многих классических шифров — от шифра Цезаря и до шифровальной машины «Энигма».В этой задаче вы реализуете простейшую версию частотного анализа: +# выясните, какая буква встречается чаще других в тексте. +# - Напишите программу, которая читает строки до тех пор, пока не встретится строка 'ФИНИШ', и выводит наиболее часто встречающуюся букву (в нижнем регистре). +# - Формат ввода +# - Вводятся строки, пока не будет введена строка «ФИНИШ». +# - Формат вывода +# - Выводится один символ в нижнем регистре — наиболее часто встречающийся во введённой строке. +# - Примечания +# - Пробелы в анализе не участвуют. Если в результате анализа получено несколько ответов, следует вывести первый по алфавиту. У данной задачи множество "быстрых" способов решения, но в этом параграфе мы просим вас сосредоточиться на использовании строк и списков. + + +# + +def min_analysis() -> None: + """min_analysis.""" + letters_anal: list[str] = [] + counts_anal: list[int] = [] + + while True: + row_anal: str = input() + if row_anal == "ФИНИШ": + break + for char_anal in row_anal: + letter_anal: str = char_anal.lower() + if letter_anal == " ": + continue + if letter_anal in letters_anal: + index_anal: int = letters_anal.index(letter_anal) + counts_anal[index_anal] += 1 + else: + letters_anal.append(letter_anal) + counts_anal.append(1) + max_anal_count: int = max(counts_anal) if counts_anal else 0 + max_anal_letters: list[str] = [] + for i_an, letter in enumerate(letters_anal): + if counts_anal[i_an] == max_anal_count: + max_anal_letters.append(letter) + if max_anal_letters: + max_anal_letters.sort() + print(max_anal_letters[0]) + else: + print("") + + +if __name__ == "__main__": + min_analysis() + + +# - + +# ### Найдётся всё +# - Теперь — к делу. Поиск информации — одна из самых важных задач в наше время. Предлагаем потренироваться в работе со списками строк, поиском подстроки, и игнорированием регистра. Создайте мини-поисковик, который по ключевому слову покажет подходящие заголовки страниц. +# - Формат ввода +# - Вводится натуральное число N — количество страниц, среди которых требуется произвести поиск. +# - В каждой из последующих N строк записаны заголовки страниц. В последней строке записан поисковый запрос. +# - Формат вывода +# - Вывести все заголовки страниц, в которых присутствует поисковый запрос (регистр не имеет значения). Порядок заголовков должен сохраниться. + + +# + +def everything() -> None: + """everything.""" + every_count: int = int(input()) + every_list: list[str] = [] + every_name: str = "" + for i_eve in range(every_count + 1): + every_text: str = input() + if i_eve < every_count: + every_list.append(every_text) + elif i_eve == every_count: + every_name = every_text + for every_string in every_list: + if every_name.lower() in every_string.lower(): + print(every_string) + + +if __name__ == "__main__": + everything() + + +# - + +# ### Меню питания +# - В детском саду ежедневно подают новую кашу на завтрак. Каши чередуются в следующем порядке: +# - Манная; +# - Гречневая; +# - Пшённая; +# - Овсяная; +# - Рисовая. +# - Ваша задача — составить расписание каш на ближайшие дни, чтобы повара знали, что готовить. +# - Напишите программу, которая по числу дней N выводит, какие каши будут подаваться в ближайшие N дней. +# - Формат ввода +# - Вводится натуральное число N — количество дней. +# - Формат вывода +# - Вывести список каш в порядке подачи. + + +# + +def food_menu() -> None: + """food_menu.""" + count_day_menu: int = int(input()) + my_list_menu: list[str] = ["Манная", "Гречневая", "Пшённая", "Овсяная", "Рисовая"] + + for i_food in range(1, count_day_menu + 1): + word_index_menu: int = (i_food - 1) % len(my_list_menu) + current_word_menu: str = my_list_menu[word_index_menu] + print(current_word_menu) + + +if __name__ == "__main__": + food_menu() + + +# - + +# ### Массовое возведение в степень +# - Часто возникают трудности, когда нужно выполнить множество однообразных операций. В таких случаях люди желают упростить себе работу. Напишите программу, которая возводит в заданную степень все числа, что передали пользователи. +# - Формат ввода +# - Вводится натуральное число N — количество чисел. +# - В каждой из последующих N строк записано по одному числу. +# - В последней строке записано натуральное число P — степень, в которую требуется возвести числа. +# - Формат вывода +# - Последовательность чисел, являющихся ответом. + + +# + +def exponentiation() -> None: + """exponentiation.""" + number_of_numbers: int = int(input()) + my_list: list[int] = [] + number_power: int = 0 + for i_expon in range(number_of_numbers + 1): + numbers: int = int(input()) + if i_expon < number_of_numbers: + my_list.append(numbers) + elif i_expon == number_of_numbers: + number_power = numbers + for j_exp in my_list: + print(j_exp**number_power) + + +if __name__ == "__main__": + exponentiation() + + +# - + +# ### Массовое возведение в степень 2.0 +# - Иногда приходится выполнять однотипные действия над целой группой чисел — например, возвести каждое из них в заданную степень. Вручную это делать долго и утомительно, особенно если чисел много. Пора автоматизировать процесс! +# - Напишите программу, которая возводит в заданную степень все числа, переданные пользователем. +# - Формат ввода +# - В первой строке записана последовательность натуральных чисел, разделённых пробелами.Во второй строке записано натуральное число P — степень, в которую требуется возвести числа. +# - Формат вывода +# - Последовательность чисел, являющихся ответом. Числа вывести в одну строку через пробел. + + +# + +def exponentiation_2() -> None: + """exponentiation_2.""" + number_of_numbers_exp: int = 2 + my_list_exp: list[int] = [] + number_power_exp: int = 0 + + for i_exp in range(number_of_numbers_exp): + numbers_exp: list[str] = input().split() + if i_exp == 0: + my_list_exp = [int(x) for x in numbers_exp] + else: + number_power_exp = int(numbers_exp[0]) + result_exp: list[str] = [] + for num in my_list_exp: + numb_exp: int = num**number_power_exp + result_exp.append(str(numb_exp)) + print(" ".join(result_exp)) + + +if __name__ == "__main__": + exponentiation_2() + + +# - + +# ### НОД 3.0 +# - Из местного НИИ снова обратились за помощью. Им снова нужно находить наибольший общий делитель (НОД) — теперь по целой строке чисел. Хорошо, что у нас есть опыт! +# - Напишите программу, которая находит НОД всех чисел, введённых в одной строке через пробел. +# - Формат ввода +# - В единственной строке записывается последовательность натуральных чисел, разделённых пробелами. +# - Формат вывода +# - Требуется вывести одно натуральное число — НОД всех данных чисел. +# - Примечание +# - Самый распространенный способ поиска НОД — Алгоритм Эвклида. + + +# + +def nod_3() -> None: + """nod_3.""" + + +numbers_list_nod: list[int] = list(map(int, input().split())) +if not numbers_list_nod: + print(0) +else: + current_gcd: int = numbers_list_nod[0] + for i in range(1, len(numbers_list_nod)): + numb_nod: int = numbers_list_nod[i] + a_nod: int = current_gcd + b_nod: int = numb_nod + while b_nod: + a_nod, b_nod = b_nod, a_nod % b_nod + current_gcd = a_nod + if current_gcd == 1: + break + print(current_gcd) + + +if __name__ == "__main__": + nod_3() + + +# - + +# ### Анонс новости 2.0 +# - Вы снова работаете над лентой новостей для сайта. Теперь заголовки могут занимать несколько строк, но при этом всё равно нужно соблюдать лимит: если заголовок слишком длинный — он должен быть сокращён и завершён многоточием .... Эта задача поможет вам научиться учитывать длину строк, переносы и условия обрезки текста. +# - Напишите программу, которая по заданному количеству строк и максимально допустимой длине:выводит заголовок, при необходимости обрезая его; если заголовок слишком длинный — заменяет последние символы на ...; если строки заканчиваются слишком коротко, ... может перейти в предыдущую строку. +# - Формат ввода +# - Вводится натуральное число L — необходимая длина заголовка. +# - Вводится натуральное число N — количество строк в заголовке новости. +# - В каждой из последующих N строк записано по одной строке заголовка. +# - Формат вывода +# - Сокращённый заголовок. +# - Примечание +# - Многоточие учитывается при подсчёте длины заголовка. Символ перевода строки при подсчёте длины не учитывается. + + +# + +def news_announcement_2() -> None: + """news_announcement_2.""" + max_length_an: int = int(input()) + lines_an: list[str] = [] + + for _ in range(int(input())): + lines_an.append(input()) + + for line_an in lines_an: + if max_length_an > 3: + if len(line_an) >= max_length_an - 3: + line_an = line_an[: max_length_an - 3] + "..." + else: + if max_length_an == 4: + line_an = line_an + "..." + + print(line_an) + max_length_an -= len(line_an) + + +if __name__ == "__main__": + news_announcement_2() + + +# - + +# ### А роза упала на лапу Азора 5.0 +# - Мы снова возвращаемся к загадочным палиндромам — на этот раз с небольшим усложнением.Теперь нужно определить, является ли строка палиндромом без учёта регистра и пробелов. То есть А роза упала на лапу Азора — это палиндром, а Мама мыла раму — уже нет. +# - Напишите программу, которая проверяет, является ли введённая строка палиндромом. +# - Формат ввода +# - Вводится строка. +# - Формат вывода +# - Если введённая строка относится к палиндрому, то вывести YES, а иначе — NO. +# - Примечание +# - При проверке не обращайте внимания на регистр и пробелы. + + +# + +def palindrome_5() -> None: + """palindrome_5.""" + text_palindrome: str = input().lower().replace(" ", "") + if text_palindrome == text_palindrome[::-1]: + print("YES") + else: + print("NO") + + +if __name__ == "__main__": + palindrome_5() + + +# - + +# ### RLE +# - RLE (Run-Length Encoding) — это способ сокращённой записи повторяющихся символов. Вместо длинной группы одинаковых символов записывается сам символ и число его повторений. Например, 99999 превращается в 9 5 («девять пять раз»). +# - Напишите программу, которая получает строку из цифр и выводит её RLE-представление: последовательность пар «цифра — количество подряд идущих повторений». +# - Формат ввода +# - Строка цифр длиной не меньше 1. +# - Формат вывода +# - Пары: сама цифра и количество повторений цифры подряд во введённой строке, как описано в условии и показано в примере. + + +# + +def rle() -> None: + """rle.""" + text_rle: str = input().strip() + if not text_rle: + sys.exit() + reference_rle: str = text_rle[0] + counter_rle: int = 1 + text_rle = text_rle[1:] + "_" + + result_rle: list[str] = [] + for digit in text_rle: + if digit == reference_rle: + counter_rle += 1 + else: + result_rle.append(f"{reference_rle} {counter_rle}") + reference_rle = digit + counter_rle = 1 + print("\n".join(result_rle)) + + +if __name__ == "__main__": + rle() + + +# - + +# ### Польский калькулятор +# Сейчас — вызов на логику: реализуем калькулятор на основе обратной польской нотации (ОПН). В ОПН нет скобок и приоритета операций — всё вычисляется строго слева направо, с помощью стека. Вы добавляете числа в стек, а когда встречаете оператор (+, -, *) — извлекаете два последних числа, применяете операцию и возвращаете результат обратно в стек. +# - Напишите программу, которая по введённому выражению в ОПН вычисляет результат. +# - Формат ввода +# - Вводится одна строка, содержащая разделённые пробелами целые числа и знаки операций +, -, *, которые вместе составляют корректное выражение в обратной польской нотации. +# - Формат вывода +# - Выводится одно целое число — результат вычисления выражения. + + +# + +def polish_calculator() -> None: + """polish_calculator.""" + expression: list[str] = input().split() + stack: list[int] = [] + for token in expression: + if token in "+-*": + b_pol: int = stack.pop() + a_pol: int = stack.pop() + result: int + if token == "+": + result = a_pol + b_pol + elif token == "-": + result = a_pol - b_pol + elif token == "*": + result = a_pol * b_pol + stack.append(result) + else: + stack.append(int(token)) + print(stack[0]) + + +if __name__ == "__main__": + polish_calculator() + + +# - + +# ### Польский калькулятор — 2 +# - Напоследок последняя задача с ОПН. Операции, которые выполняются с одним значением, называются унарными, с двумя — бинарными, с тремя — тернарными.Давайте улучшим наш калькулятор, добавив поддержку следующих операций: +# - бинарные: +# - + (сложение), +# - - (вычитание), +# - * (умножение), +# - / (деление нацело; для отрицательных чисел работает по тем же правилам, что и в Python); +# - унарные: +# - ~ (унарный минус — меняет знак), +# - ! (факториал), +# - (#) (клонирование — вернуть в стек значение дважды); +# - тернарные: +# - @ (возвращает в стек те же три значения, но в ином порядке: второе, третье, первое). +# - Формат ввода +# - Вводится одна строка, содержащая разделённые пробелами целые числа и знаки операций. Вместе они составляют корректное выражение в обратной польской нотации, не содержащее деления на ноль и взятия факториала от отрицательного числа. +# - Формат вывода +# - Выводится одно целое число — результат вычисления выражения. + + +# + +def polish_calculator_2() -> None: + """polish_calculator_2.""" + tokens: list[str] = input().split() + stack: list[int] = [] + + for token in tokens: + if token == "+": + right_operand = stack.pop() + left_operand = stack.pop() + stack.append(left_operand + right_operand) + continue + + if token == "-": + right_operand = stack.pop() + left_operand = stack.pop() + stack.append(left_operand - right_operand) + continue + + if token == "*": + right_operand = stack.pop() + left_operand = stack.pop() + stack.append(left_operand * right_operand) + continue + + if token == "/": + right_operand = stack.pop() + left_operand = stack.pop() + stack.append(left_operand // right_operand) + continue + + if token == "~": + operand = stack.pop() + stack.append(-operand) + continue + + if token == "!": + operand = stack.pop() + stack.append(factorial(operand)) + continue + + if token == "#": + duplicate_value = stack.pop() + stack.append(duplicate_value) + stack.append(duplicate_value) + continue + + if token == "@": + third_value = stack.pop() + second_value = stack.pop() + first_value = stack.pop() + stack.append(second_value) + stack.append(third_value) + stack.append(first_value) + continue + + stack.append(int(token)) + + print(stack[0]) + + +polish_calculator_2() diff --git a/python/yandex/working_with_collections_3_4.ipynb b/python/yandex/working_with_collections_3_4.ipynb new file mode 100644 index 00000000..537ab3a1 --- /dev/null +++ b/python/yandex/working_with_collections_3_4.ipynb @@ -0,0 +1,998 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "0017342f", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'Встроенные возможности по работе с коллекциями.\\n\\nВ этом параграфе вы познакомитесь с расширенными \\nвозможностями Python для работы с коллекциями. \\nВы научитесь использовать библиотеку itertools, \\nчтобы эффективно обрабатывать и комбинировать \\nданные, даже если они приходят из разных источников. \\nРазберётесь, как создавать бесконечные итераторы, \\nобъединять и фильтровать коллекции, а также применять \\nфункции enumerate() и zip() в практических задачах. \\nЭти инструменты помогут писать более компактный и \\nчитаемый код.\\n'" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\"\"\"Встроенные возможности по работе с коллекциями.\n", + "\n", + "В этом параграфе вы познакомитесь с расширенными\n", + "возможностями Python для работы с коллекциями.\n", + "Вы научитесь использовать библиотеку itertools,\n", + "чтобы эффективно обрабатывать и комбинировать\n", + "данные, даже если они приходят из разных источников.\n", + "Разберётесь, как создавать бесконечные итераторы,\n", + "объединять и фильтровать коллекции, а также применять\n", + "функции enumerate() и zip() в практических задачах.\n", + "Эти инструменты помогут писать более компактный и\n", + "читаемый код.\n", + "\"\"\"" + ] + }, + { + "cell_type": "markdown", + "id": "8c18430c", + "metadata": {}, + "source": [ + "## Автоматизация списка.\n", + "\n", + "- Эти задачи направлены на отработку применения встроенных инструментов Python для генерации, комбинирования и обработки коллекций.\n", + "- Начнем с первой задачи. Не забывайте делать перерывы, если устали. Однако обязательно возвращайтесь к решению!\n", + "- В жизни часто приходится составлять списки: продуктов, задач на день, дел.\n", + "- Давайте автоматизируем это с помощью Python!\n", + "- Напишите программу, которая превращает строку слов в нумерованный список — по одному элементу на строку.\n", + "- Формат ввода\n", + "- Вводится одна строка.\n", + "- Формат вывода\n", + "- Требуется вывести нумерованный список, составленный из её слов." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a8b573ac", + "metadata": {}, + "outputs": [], + "source": [ + "import re\n", + "import sys\n", + "from itertools import (\n", + " accumulate,\n", + " chain,\n", + " combinations,\n", + " cycle,\n", + " islice,\n", + " permutations,\n", + " product,\n", + ")\n", + "from typing import Mapping\n", + "\n", + "text_auto: str = input()\n", + "text_list: list[str] = text_auto.split()\n", + "for index, word_auto in enumerate(text_list, 1):\n", + " print(f\"{index}. {word_auto}\")" + ] + }, + { + "cell_type": "markdown", + "id": "5da3b113", + "metadata": {}, + "source": [ + "## Сборы на прогулку.\n", + "\n", + "- Воспитатель в детском саду устал тратить время, чтобы построить детей по парам. Он договорился с детьми, чтобы те делились на две, по возможности равные, группы.\n", + "- Напишите программу, которая по списку двух шеренг составляет пары детей.\n", + "- Формат ввода\n", + "- Вводится две строки с именами детей, записанными через запятую и пробел.\n", + "- Формат вывода\n", + "- Требуется вывести список пар, которые можно составить, если последовательно брать из каждой шеренги по одному ребёнку.\n", + "- Имена в парах выводить через дефис окружённый пробелами.\n", + "- Примечание\n", + "- В одной из групп может быть на одного ребенка больше, чем в другой.\n", + "- Этот ребёнок при формировании пар не учитывается и идёт в паре с воспитателем." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "5c6a43cc", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Аня - Боря\n", + "Вова - Дима\n" + ] + } + ], + "source": [ + "group_1: str = input()\n", + "group_2: str = input()\n", + "group_list_1: list[str] = [name.strip() for name in group_1.split(\",\")]\n", + "group_list_2: list[str] = [name.strip() for name in group_2.split(\",\")]\n", + "for child_1, child_2 in zip(group_list_1, group_list_2):\n", + " print(f\"{child_1} - {child_2}\")" + ] + }, + { + "cell_type": "markdown", + "id": "b766c272", + "metadata": {}, + "source": [ + "## Рациональная считалочка.\n", + "\n", + "- Теперь потренируемся использовать бесконечные итераторы.\n", + "- Напишите программу, которая выводит последовательность чисел по заданным параметрам — началу, концу и шагу.\n", + "- Формат ввода\n", + "- В одну строку через пробел вводятся 3 рациональных числа — начало счета, конец и шаг.\n", + "- Формат вывода\n", + "- Последовательность чисел с заданными параметрами." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "7fb47962", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3.14\n", + "4.71\n", + "6.28\n", + "7.85\n", + "9.42\n" + ] + } + ], + "source": [ + "input_str: str = input()\n", + "values: list[str] = input_str.split()\n", + "\n", + "start_count: float = float(values[0])\n", + "end_count: float = float(values[1])\n", + "step: float = float(values[2])\n", + "\n", + "current: float = start_count\n", + "while current <= end_count:\n", + " print(round(current, 2))\n", + " current += step" + ] + }, + { + "cell_type": "markdown", + "id": "c49d08a1", + "metadata": {}, + "source": [ + "## Словарная ёлка.\n", + "\n", + "- Попробуем применить итератор к строкам, а не к числам.\n", + "- Напишите программу, которая превращает строку слов в «ёлку» — с каждой строкой список становится длиннее.\n", + "- Формат ввода\n", + "- В одну строку через пробел вводятся слова разделенные пробелом.\n", + "- Формат вывода\n", + "- Несколько строк. В каждой следующей строке на одно слово больше." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "b802a5f5", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "мама\n", + "мама мыла\n", + "мама мыла раму\n" + ] + } + ], + "source": [ + "text: list[str] = input().split()\n", + "for value in accumulate(text, lambda x, y: f\"{x} {y}\"):\n", + " print(value)" + ] + }, + { + "cell_type": "markdown", + "id": "20cdecf1", + "metadata": {}, + "source": [ + "## Список покупок.\n", + "\n", + "- Поход в магазин часто вызывает проблемы. Если не подготовить список, можно уйти за хлебом, а вернуться с десятком пакетов.\n", + "- Напишите программу, которая собирает пожелания семьи (мамы, папы и дочки) в единый список и приводит его в порядок.\n", + "- Формат ввода\n", + "- В трёх строках записаны желаемые продукты (через запятую и пробел).\n", + "- Формат вывода\n", + "- Отсортированный по алфавиту список продуктов с нумерацией.\n", + "- Примечание\n", + "- Помните, что итераторы можно применять к другим итераторам." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "08d34607", + "metadata": {}, + "outputs": [], + "source": [ + "lines: list[str] = []\n", + "for _ in range(3):\n", + " line: str = input().strip()\n", + " lines.append(line)\n", + "\n", + "lists_of_products: list[list[str]] = []\n", + "for line in lines:\n", + " products: list[str] = [product.strip() for product in line.split(\",\")]\n", + " lists_of_products.append(products)\n", + "\n", + "all_products: list[str] = list(chain.from_iterable(lists_of_products))\n", + "all_products.sort()\n", + "\n", + "for index, product_by in enumerate(all_products, 1):\n", + " print(f\"{index}. {product_by}\")" + ] + }, + { + "cell_type": "markdown", + "id": "0aa084f2", + "metadata": {}, + "source": [ + "## Колода карт.\n", + "\n", + "- Пора сыграть в карты — но без одной из мастей. Сгенерируйте колоду игральных карт (от двойки до туза), исключив масть, которую вводит пользователь.\n", + "- Формат ввода\n", + "- Название масти, которая должна быть выброшена, передаётся в том же падеже, в котором она выводится на экран: «пик», «треф», «бубен» и «червей».\n", + "- Формат вывода\n", + "- Список карт в колоде по увеличению номинала, затем масти (как в преферансе)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "67d65acd", + "metadata": {}, + "outputs": [], + "source": [ + "exclude_suit: str = input()\n", + "suits: list[str] = [\"пик\", \"треф\", \"бубен\", \"червей\"]\n", + "weights: list[str] = [\n", + " \"2\",\n", + " \"3\",\n", + " \"4\",\n", + " \"5\",\n", + " \"6\",\n", + " \"7\",\n", + " \"8\",\n", + " \"9\",\n", + " \"10\",\n", + " \"валет\",\n", + " \"дама\",\n", + " \"король\",\n", + " \"туз\",\n", + "]\n", + "suits.remove(exclude_suit)\n", + "deck: list[tuple[str, str]] = list(product(weights, suits))\n", + "deck.sort(key=lambda card: (weights.index(card[0]), suits.index(card[1])))\n", + "for card in deck:\n", + " print(f\"{card[0]} {card[1]}\")" + ] + }, + { + "cell_type": "markdown", + "id": "fe8bd3b7", + "metadata": {}, + "source": [ + "## Игровая сетка.\n", + "\n", + "- Ребята в классе решили устроить чемпионат по шашкам по принципу «каждый с каждым».\n", + "- Напишите программу, которая составляет список всех возможных игр между учениками.\n", + "- Формат ввода\n", + "- В первой строке записано число учеников (N). \n", + "- В каждой из последующих N строк записано одно имя.\n", + "- Формат вывода\n", + "- Список игр в формате:\n", + "- <Игрок 1> - <Игрок 2>\n", + "- Порядок игр не имеет значения." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6fad740a", + "metadata": {}, + "outputs": [], + "source": [ + "pop: list[str] = []\n", + "numb: int = int(input())\n", + "for _ in range(numb):\n", + " name: str = input()\n", + " pop.append(name)\n", + "for pair in combinations(pop, 2):\n", + " print(f\"{pair[0]} - {pair[1]}\")" + ] + }, + { + "cell_type": "markdown", + "id": "99ac9acc", + "metadata": {}, + "source": [ + "## Меню питания 2.0.\n", + "\n", + "- В детском саду ежедневно подают новую кашу на завтрак.\n", + "- Напишите программу, которая строит расписание каш на ближайшие дни на основе заданного меню.\n", + "- Формат ввода\n", + "- Вводится натуральное число M — количество каш в меню.\n", + "- В каждой из последующих M строк записано одно название каши.\n", + "- В конце передается натуральное число N — количество дней.\n", + "- Формат вывода\n", + "- Вывести список каш в порядке подачи." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c1240b86", + "metadata": {}, + "outputs": [], + "source": [ + "count_porridge: int = int(input())\n", + "porridges: list[str] = []\n", + "for _ in range(count_porridge):\n", + " porridge: str = input().strip()\n", + " porridges.append(porridge)\n", + "count_day: int = int(input())\n", + "infinite_menu = cycle(porridges)\n", + "schedule: list[str] = list(islice(infinite_menu, count_day))\n", + "for porrige in schedule:\n", + " print(porrige)" + ] + }, + { + "cell_type": "markdown", + "id": "15e02b59", + "metadata": {}, + "source": [ + "## Таблица умножения 3.0.\n", + "\n", + "- Местная фабрика канцелярских товаров заказала программу, которая генерирует таблицы умножения.\n", + "- Давайте поможем производителю.\n", + "- Напишите программу, которая выводит таблицу умножения размером N×N — построчно, по одному ряду на строку.\n", + "- Формат ввода\n", + "- Вводится одно натуральное число — требуемый размер таблицы.\n", + "- Формат вывода\n", + "- Таблица умножения заданного размера." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "04037f94", + "metadata": {}, + "outputs": [], + "source": [ + "numb_tab: int = int(input())\n", + "for i_tab, j_tab in product(range(1, numb_tab + 1), repeat=2):\n", + " print(i_tab * j_tab, end=\" \" if j_tab < numb_tab else \"\\n\")" + ] + }, + { + "cell_type": "markdown", + "id": "ac17a639", + "metadata": {}, + "source": [ + "## Мы делили апельсин 2.0.\n", + "\n", + "- Аня, Боря и Вова решили съесть апельсин. Подскажите ребятам, как им его разделить.\n", + "- Разработайте программу, которая выводит все возможные способы разделить заданное количество долек апельсина между тремя детьми так, чтобы каждому досталось хотя бы по одной, и ничего не осталось.\n", + "- Формат ввода\n", + "- В единственной строке записано количество долек апельсина (N).\n", + "- Формат вывода\n", + "- Таблица вариантов разделения апельсина.\n", + "- Примечания\n", + "- Каждому ребёнку должна достаться хотя бы одна долька апельсина.\n", + "- Ни одной дольки не должно остаться.\n", + "- Выводить варианты в порядке увеличения количества долек у Ани, следом Бори и затем Вовы." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d68fd82e", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "А Б В\n", + "1 1 1\n" + ] + } + ], + "source": [ + "numb_div: int = int(input())\n", + "print(\"А Б В\")\n", + "for anna in range(1, numb_div - 1):\n", + " for borya in range(1, numb_div - anna):\n", + " vova: int = numb_div - anna - borya\n", + " if vova >= 1:\n", + " print(f\"{anna} {borya} {vova}\")" + ] + }, + { + "cell_type": "markdown", + "id": "924db664", + "metadata": {}, + "source": [ + "## Числовой прямоугольник 3.0.\n", + "\n", + "- Ребята в детском саду вновь учатся считать, и воспитательница решила сделать так, чтобы им было проще освоить новый навык.\n", + "- Для этого она хочет оформить список изучаемых чисел особым образом.\n", + "- Дети справляются весьма быстро, поэтому ей требуется программа, которая способна строить числовые прямоугольники.\n", + "- Напишите программу, которая строит числовой прямоугольник заданного размера, заполняя его числами по строкам.\n", + "- Все столбцы должны быть одинаковой ширины — так прямоугольник будет выглядеть аккуратно.\n", + "- Формат ввода\n", + "- В первой строке записано число N — высота числового прямоугольника.\n", + "- Во второй строке указано число M — ширина числового прямоугольника.\n", + "- Формат вывода\n", + "- Нужно вывести сформированный числовой прямоугольник требуемого размера.\n", + "- Чтобы прямоугольник был красивым, каждый его столбец должен быть одинаковой ширины." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "114c2097", + "metadata": {}, + "outputs": [], + "source": [ + "height: int = int(input())\n", + "width: int = int(input())\n", + "total_numbers: int = height * width\n", + "max_width: int = len(str(total_numbers))\n", + "for i in range(height):\n", + " start: int = i * width + 1\n", + " end: int = start + width\n", + " row: list[str] = [f\"{num:>{max_width}}\" for num in range(start, end)]\n", + " print(\" \".join(row))" + ] + }, + { + "cell_type": "markdown", + "id": "560190b5", + "metadata": {}, + "source": [ + "## Список покупок 2.0.\n", + "\n", + "- Давайте вновь поможем человеку с покупками.\n", + "- Разработайте программу, которая объединяет пожелания семьи в один аккуратный список продуктов.\n", + "- Соберите все элементы в общий список, отсортируйте его по алфавиту и пронумеруйте.\n", + "- Формат ввода\n", + "- В первой строке задано натуральное число N — количество членов семьи. В следующих N строках записаны желаемые продукты (через запятую и пробел).\n", + "- Формат вывода\n", + "- Отсортированный по алфавиту список продуктов с нумерацией." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "342b40c1", + "metadata": {}, + "outputs": [], + "source": [ + "numb_l: int = int(input())\n", + "lines_l: list[str] = []\n", + "for _ in range(numb_l):\n", + " line_l: str = input().strip()\n", + " lines_l.append(line_l)\n", + "lists_of_products_2: list[list[str]] = []\n", + "for line_l in lines_l:\n", + " products_: list[str] = [product.strip() for product in line_l.split(\",\")]\n", + " lists_of_products_2.append(products_)\n", + "all_products_: list[str] = list(chain.from_iterable(lists_of_products_2))\n", + "all_products_.sort()\n", + "for index, product_ in enumerate(all_products_, 1):\n", + " print(f\"{index}. {product_}\")" + ] + }, + { + "cell_type": "markdown", + "id": "1f31508b", + "metadata": {}, + "source": [ + "## Расстановка спортсменов.\n", + "\n", + "- Расстановка спортсменов на старте — дело несложное, если знать, как подойти к задаче.\n", + "- Напишите программу, которая выводит все возможные расстановки участников, учитывая их имена.\n", + "- Формат ввода\n", + "- В первой строке задано натуральное число N — количество спортсменов. В следующих N строках записаны имена спортсменов.\n", + "- Формат вывода\n", + "- Отсортированный по алфавиту список расстановок.\n", + "- Имена в каждой строке выводить через запятую и пробел." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "bb42a993", + "metadata": {}, + "outputs": [], + "source": [ + "numb_sp: int = int(input())\n", + "names_sp: list[str] = []\n", + "for _ in range(numb_sp):\n", + " name_sp: str = input().strip()\n", + " names_sp.append(name_sp)\n", + "all_permutations: list[tuple[str, ...]] = list(permutations(names_sp))\n", + "sorted_permutations: list[tuple[str, ...]] = sorted(all_permutations)\n", + "for perm in sorted_permutations:\n", + " print(\", \".join(perm))" + ] + }, + { + "cell_type": "markdown", + "id": "3a27dc5a", + "metadata": {}, + "source": [ + "- Хорошо, спортсмены расставлены на старте. Вот только угадать финалистов практически невозможно.\n", + "- Давайте напишем программу, которая выводит список возможных победителей — всех, кто может оказаться в числе призёров при любом раскладе.\n", + "- Формат ввода\n", + "- В первой строке задано натуральное число N — количество спортсменов.\n", + "- В следующих N строках записаны имена спортсменов.\n", + "- Формат вывода\n", + "- Отсортированный по алфавиту список вариантов.\n", + "- Имена в каждой строке выводить через запятую и пробел." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d9abede9", + "metadata": {}, + "outputs": [], + "source": [ + "numb_sport: int = int(input())\n", + "names_sport: list[str] = []\n", + "for _ in range(numb_sport):\n", + " name_sport: str = input().strip()\n", + " names_sport.append(name_sport)\n", + "all_permutations_: list[tuple[str, ...]] = list(permutations(names_sport))\n", + "sorted_permutations_: list[tuple[str, ...]] = sorted(all_permutations_)\n", + "for perm in sorted_permutations_:\n", + " print(\", \".join(perm))" + ] + }, + { + "cell_type": "markdown", + "id": "deacf0e3", + "metadata": {}, + "source": [ + "## Список покупок 3.0.\n", + "\n", + "- В этот раз семья договорилась, что в целях экономии они будут совершать в день только три покупки.\n", + "- Напишите программу, которая готовит все возможные варианты списков таких покупок.\n", + "- Формат ввода\n", + "- В первой строке задано натуральное число N — количество членов семьи. В следующих N строках записаны желаемые продукты (через запятую и пробел).\n", + "- Формат вывода\n", + "- Варианты списков покупок в алфавитном порядке." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "bfe00371", + "metadata": {}, + "outputs": [], + "source": [ + "numb_list: int = int(input())\n", + "lines_list: list[str] = []\n", + "for _ in range(numb_list):\n", + " line_list: str = input().strip()\n", + " lines_list.append(line_list)\n", + "lists_of_products_ls: list[list[str]] = []\n", + "for line_ls in lines_list:\n", + " products_ls: list[str] = [product.strip() for product in line_ls.split(\",\")]\n", + " lists_of_products_ls.append(products_ls)\n", + "all_products_ls: list[str] = list(chain.from_iterable(lists_of_products_ls))\n", + "all_products_ls.sort()\n", + "for product_3 in permutations(all_products_ls, 3):\n", + " prroduct_str: str = \" \".join(product_3)\n", + " print(prroduct_str)" + ] + }, + { + "cell_type": "markdown", + "id": "55c2a4d6", + "metadata": {}, + "source": [ + "## Расклад таков...\n", + "\n", + "- Можно налить себе чай перед следующей задачей — и снова в бой! Виталий любит играть в карты. Он решил выяснить, какие есть вариации вытащить из колоды определённые тройки карт. Напишите программу, которая выводит список подходящих троек в лексикографическом порядке с учётом заданных условий.\n", + "- Формат ввода\n", + "- В первой строке записана масть, которая должна присутствовать в тройке.\n", + "- Во второй строке записан достоинство, которого не должно быть в тройке.\n", + "- Формат вывода\n", + "- Выведите на экран первые 10 получившихся троек.\n", + "- Карты в каждой комбинации должны быть отсортированы лексикографически (по строке названия карты). Карты комбинации выводятся через запятую с пробелом после неё.\n", + "- Комбинации между собой также должны быть отсортированы в лексикографическом порядке по строке, представляющей комбинацию целиком.\n", + "- Примечание\n", + "- Обратите внимание: валет-дама-король-туз лексикографически упорядочены. Но «10 ...» лексикографически младше, чем «2 ...», а бубны младше, чем пики.\n", + "- Масти в именительном и родительном падежах:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f6d894a6", + "metadata": {}, + "outputs": [], + "source": [ + "required_suit: str = input().strip()\n", + "excluded_weight: str = input().strip()\n", + "suit_cases: dict[str, str] = {\n", + " \"буби\": \"бубен\",\n", + " \"пики\": \"пик\",\n", + " \"трефы\": \"треф\",\n", + " \"черви\": \"червей\",\n", + "}\n", + "suits_: list[str] = [\"пик\", \"треф\", \"бубен\", \"червей\"]\n", + "weights_: list[str] = [\n", + " \"2\",\n", + " \"3\",\n", + " \"4\",\n", + " \"5\",\n", + " \"6\",\n", + " \"7\",\n", + " \"8\",\n", + " \"9\",\n", + " \"10\",\n", + " \"валет\",\n", + " \"дама\",\n", + " \"король\",\n", + " \"туз\",\n", + "]\n", + "if required_suit in suit_cases:\n", + " required_suit_genitive: str = suit_cases[required_suit]\n", + "else:\n", + " required_suit_genitive = required_suit\n", + "deck_: list[str] = []\n", + "for weight in weights_:\n", + " for suit in suits_:\n", + " card_: str = f\"{weight} {suit}\"\n", + " deck_.append(card_)\n", + "deck_.sort()\n", + "count: int = 0\n", + "for combo in combinations(deck_, 3):\n", + " cards: list[str] = list(combo)\n", + " has_required_suit: bool = any(required_suit_genitive in card_ for card_ in cards)\n", + " has_excluded_weight: bool = any(f\"{excluded_weight}\" in card_ for card_ in cards)\n", + " if has_required_suit and not has_excluded_weight:\n", + " cards_sorted: list[str] = sorted(cards)\n", + " print(\", \".join(cards_sorted))\n", + " count += 1\n", + " if count >= 10:\n", + " break" + ] + }, + { + "cell_type": "markdown", + "id": "33e82f1c", + "metadata": {}, + "source": [ + "## А есть ещё варианты?\n", + "\n", + "- Давайте вновь поможем Виталию — теперь его интересует, какой вариант расклада идёт сразу после уже полученного.\n", + "- Напишите программу, которая находит следующий подходящий вариант тройки карт, соответствующий условиям.\n", + "- Формат ввода\n", + "- В первой строке записана масть, которая должна присутствовать в тройке.\n", + "- Во второй строке записан достоинство, которого не должно быть в тройке.\n", + "- В третьей строке записан предыдущий вариант полученный Виталием.\n", + "- Формат вывода\n", + "- Выведите следующий вариант расклада.\n", + "- Примечание\n", + "- Обратите внимание: валет-дама-король-туз лексикографически упорядочены. Но «10 ...» лексикографически младше, чем «2 ...», а бубны младше, чем пики." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "fbf97a75", + "metadata": {}, + "outputs": [], + "source": [ + "required_suit_: str = input().strip()\n", + "excluded_weight_: str = input().strip()\n", + "previous_combo_str: str = input().strip()\n", + "suit_cases_: dict[str, str] = {\n", + " \"буби\": \"бубен\",\n", + " \"пики\": \"пик\",\n", + " \"трефы\": \"треф\",\n", + " \"черви\": \"червей\",\n", + "}\n", + "required_suit_genitive_: str = suit_cases_.get(required_suit_, required_suit_)\n", + "suits_2: list[str] = [\"пик\", \"треф\", \"бубен\", \"червей\"]\n", + "weights_2: list[str] = [\n", + " \"2\",\n", + " \"3\",\n", + " \"4\",\n", + " \"5\",\n", + " \"6\",\n", + " \"7\",\n", + " \"8\",\n", + " \"9\",\n", + " \"10\",\n", + " \"валет\",\n", + " \"дама\",\n", + " \"король\",\n", + " \"туз\",\n", + "]\n", + "deck_2: list[str] = [f\"{w} {s}\" for w in weights_2 for s in suits_2]\n", + "deck_2.sort()\n", + "prev_csrds: list[str] = sorted(previous_combo_str.split(\", \"))\n", + "found: bool = False\n", + "for combo in combinations(deck_2, 3):\n", + " cards_2: list[str] = sorted(combo)\n", + " has_suit: bool = any(required_suit_genitive_ in card for card in cards_2)\n", + " no_excluded: bool = not any(\n", + " card.startswith(excluded_weight_ + \" \") for card in cards_2\n", + " )\n", + " if has_suit and no_excluded:\n", + " if found:\n", + " print(\", \".join(cards_2))\n", + " break\n", + " if cards_2 == prev_csrds:\n", + " found = True" + ] + }, + { + "cell_type": "markdown", + "id": "969ee52d", + "metadata": {}, + "source": [ + "## Таблица истинности.\n", + "\n", + "- Вся современная электронно-вычислительная техника строится на Булевой алгебре, которая оперирует истинностью и ложностью высказываний (в Python это and, or, not).\n", + "- Разработайте программу, которая для введённого логического выражения от переменных a, b, c строит таблицу истинности — то есть перебирает все возможные комбинации значений и вычисляет результат.\n", + "- Формат ввода\n", + "- Вводится логическое выражение от трех переменных (a, b, c) валидное для языка Python.\n", + "- Формат вывода\n", + "- Выведите таблицу истинности данного выражения." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5ad1a851", + "metadata": {}, + "outputs": [], + "source": [ + "exp: str = input().strip()\n", + "print(\"a b c f\")\n", + "for a_t, b_t, c_t in product([0, 1], repeat=3):\n", + " result_table: bool = eval( # pylint: disable=eval-used\n", + " exp, {\"a\": a_t, \"b\": b_t, \"c\": c_t}\n", + " )\n", + " result_int_: int = 1 if result_table else 0\n", + " print(f\"{a_t} {b_t} {c_t} {result_int_}\")" + ] + }, + { + "cell_type": "markdown", + "id": "e81a0cfd", + "metadata": {}, + "source": [ + "## Таблица истинности 2.\n", + "\n", + "- Продолжим работу с таблицами истинности.\n", + "- Теперь выражения могут содержать переменное количество переменных, обозначенных заглавными латинскими буквами.\n", + "- Напишите программу, которая строит таблицу истинности для заданного логического выражения.\n", + "- Формат ввода\n", + "- Вводится логическое выражение от нескольких переменных валидное для языка Python. Все переменные заданы заглавными латинскими буквами.\n", + "- Формат вывода\n", + "- Выведите таблицу истинности данного выражения" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a4046544", + "metadata": {}, + "outputs": [], + "source": [ + "expression: str = input().strip()\n", + "variables_: list[str] = sorted(set(re.findall(r\"[A-Z]\", expression)))\n", + "\n", + "if not variables_:\n", + " print(\"F\")\n", + " print(\"1\" if eval(expression) else \"0\") # pylint: disable=eval-used\n", + " sys.exit()\n", + "\n", + "header: str = \" \".join(variables_) + \" F\"\n", + "print(header)\n", + "\n", + "for combination in product([0, 1], repeat=len(variables_)):\n", + " var_dict: dict[str, int] = dict(zip(variables_, combination))\n", + " try:\n", + " result: bool = eval(expression, var_dict) # pylint: disable=eval-used\n", + " result_value: str = \"1\" if result else \"0\"\n", + " except ValueError:\n", + " result_value = \"E\"\n", + " values_str: str = \" \".join(str(v) for v in combination)\n", + " print(f\"{values_str} {result_value}\")" + ] + }, + { + "cell_type": "markdown", + "id": "8c4b5434", + "metadata": {}, + "source": [ + "## Таблица истинности 3.\n", + "\n", + "- На этот раз придётся справиться с выражением, в котором встречаются нестандартные логические операции: импликация, строгая дизъюнкция и эквивалентность. Они не поддерживаются в Python напрямую, но вы сможете реализовать их самостоятельно.\n", + "- Напишите программу, которая для заданного логического выражения строит таблицу истинности, включая поддержку следующих операций:\n", + "- -> — импликация\n", + "- ^ — строгая дизъюнкция\n", + "- ~ — эквивалентность\n", + "- Формат ввода\n", + "- Вводится логическое выражение от нескольких переменных.\n", + "- Возможное содержание выражения:\n", + "- Заглавная латинская буква — переменная;\n", + "- not — отрицание;\n", + "- and — конъюнкция;\n", + "- or — дизъюнкция;\n", + "- ^ — строгая дизъюнкция;\n", + "- -> — импликация;\n", + "- ~ — эквивалентность;\n", + "- () — логические скобки.\n", + "- Формат вывода\n", + "- Выведите таблицу истинности данного выражения." + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "c0c2aad4", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "A B C F\n", + "0 0 0 0\n", + "0 0 1 1\n", + "0 1 0 0\n", + "0 1 1 1\n", + "1 0 0 1\n", + "1 0 1 0\n", + "1 1 0 0\n", + "1 1 1 1\n" + ] + } + ], + "source": [ + "OPERATORS: dict[str, str] = {\n", + " \"not\": \"not\",\n", + " \"and\": \"and\",\n", + " \"or\": \"or\",\n", + " \"^\": \"!=\",\n", + " \"->\": \"<=\",\n", + " \"~\": \"==\",\n", + "}\n", + "PRIORITY: dict[str, int] = {\n", + " \"not\": 0,\n", + " \"and\": 1,\n", + " \"or\": 2,\n", + " \"^\": 3,\n", + " \"->\": 4,\n", + " \"~\": 5,\n", + " \"(\": 6,\n", + "}\n", + "\n", + "\n", + "def parse_expression(expr: str, variables: list[str]) -> list[str]:\n", + " \"\"\"parse_expression.\"\"\"\n", + " stack: list[str] = []\n", + " result_9: list[str] = []\n", + " expr = expr.replace(\"(\", \"( \").replace(\")\", \" )\")\n", + " for token in expr.split():\n", + " if token in variables:\n", + " result_9.append(token)\n", + " elif token == \"(\":\n", + " stack.append(token)\n", + " elif token == \")\":\n", + " while stack[-1] != \"(\":\n", + " result_9.append(OPERATORS[stack.pop()])\n", + " stack.pop()\n", + " elif token in OPERATORS:\n", + " while stack and PRIORITY[token] >= PRIORITY.get(stack[-1], 100):\n", + " result_9.append(OPERATORS[stack.pop()])\n", + " stack.append(token)\n", + " while stack:\n", + " result_9.append(OPERATORS[stack.pop()])\n", + " return result_9\n", + "\n", + "\n", + "def evaluate(rpn_expr: list[str], v_dict: Mapping[str, int | bool]) -> int:\n", + " \"\"\"evaluate.\"\"\"\n", + " stack: list[int | bool] = []\n", + " for token in rpn_expr:\n", + " if token in v_dict:\n", + " stack.append(v_dict[token])\n", + " elif token == \"not\":\n", + " operand = stack.pop()\n", + " stack.append(not operand)\n", + " else:\n", + " rhs = stack.pop()\n", + " lhs = stack.pop()\n", + " if token == \"and\":\n", + " result_ev = lhs and rhs\n", + " elif token == \"or\":\n", + " result_ev = lhs or rhs\n", + " elif token == \"!=\":\n", + " result_ev = lhs != rhs\n", + " elif token == \"<=\":\n", + " result_ev = (not lhs) or rhs # implication\n", + " elif token == \"==\":\n", + " result_ev = lhs == rhs\n", + " else:\n", + " raise ValueError(f\"Unknown operator: {token}\")\n", + " stack.append(result_ev)\n", + " return int(stack.pop())\n", + "\n", + "\n", + "log_expr: str = input().strip()\n", + "vars_in_expr: list[str] = sorted({ch for ch in log_expr if ch.isupper()})\n", + "rpn: list[str] = parse_expression(log_expr, vars_in_expr)\n", + "print(*vars_in_expr, \"F\")\n", + "for bool_values in product([0, 1], repeat=len(vars_in_expr)):\n", + " value_pairs = zip(vars_in_expr, (bool(v) for v in bool_values))\n", + " val_map: dict[str, bool] = dict(value_pairs)\n", + " result_10: int = evaluate(rpn, val_map)\n", + " print(*bool_values, result_10)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "69a93aaf", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.12" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/python/yandex/working_with_collections_3_4.py b/python/yandex/working_with_collections_3_4.py new file mode 100644 index 00000000..4f984a1c --- /dev/null +++ b/python/yandex/working_with_collections_3_4.py @@ -0,0 +1,614 @@ +"""Встроенные возможности по работе с коллекциями. + +В этом параграфе вы познакомитесь с расширенными возможностями Python для работы с +коллекциями. Вы научитесь использовать библиотеку itertools, чтобы эффективно обрабатывать +и комбинировать данные, даже если они приходят из разных источников. Разберётесь, как +создавать бесконечные итераторы, объединять и фильтровать коллекции, а также применять +функции enumerate() и zip() в практических задачах. Эти инструменты помогут писать более +компактный и читаемый код. +""" + +# ## Автоматизация списка. +# +# - Эти задачи направлены на отработку применения встроенных инструментов Python для генерации, комбинирования и обработки коллекций. +# - Начнем с первой задачи. Не забывайте делать перерывы, если устали. Однако обязательно возвращайтесь к решению! +# - В жизни часто приходится составлять списки: продуктов, задач на день, дел. +# - Давайте автоматизируем это с помощью Python! +# - Напишите программу, которая превращает строку слов в нумерованный список — по одному элементу на строку. +# - Формат ввода +# - Вводится одна строка. +# - Формат вывода +# - Требуется вывести нумерованный список, составленный из её слов. + +# + +import re +import sys +from collections.abc import Mapping +from itertools import ( + accumulate, + chain, + combinations, + cycle, + islice, + permutations, + product, +) + +text_auto: str = input() +text_list: list[str] = text_auto.split() +for index, word_auto in enumerate(text_list, 1): + print(f"{index}. {word_auto}") +# - + +# ## Сборы на прогулку. +# +# - Воспитатель в детском саду устал тратить время, чтобы построить детей по парам. Он договорился с детьми, чтобы те делились на две, по возможности равные, группы. +# - Напишите программу, которая по списку двух шеренг составляет пары детей. +# - Формат ввода +# - Вводится две строки с именами детей, записанными через запятую и пробел. +# - Формат вывода +# - Требуется вывести список пар, которые можно составить, если последовательно брать из каждой шеренги по одному ребёнку. +# - Имена в парах выводить через дефис окружённый пробелами. +# - Примечание +# - В одной из групп может быть на одного ребенка больше, чем в другой. +# - Этот ребёнок при формировании пар не учитывается и идёт в паре с воспитателем. + +group_1: str = input() +group_2: str = input() +group_list_1: list[str] = [name.strip() for name in group_1.split(",")] +group_list_2: list[str] = [name.strip() for name in group_2.split(",")] +for child_1, child_2 in zip(group_list_1, group_list_2): + print(f"{child_1} - {child_2}") + +# ## Рациональная считалочка. +# +# - Теперь потренируемся использовать бесконечные итераторы. +# - Напишите программу, которая выводит последовательность чисел по заданным параметрам — началу, концу и шагу. +# - Формат ввода +# - В одну строку через пробел вводятся 3 рациональных числа — начало счета, конец и шаг. +# - Формат вывода +# - Последовательность чисел с заданными параметрами. + +# + +input_str: str = input() +values: list[str] = input_str.split() + +start_count: float = float(values[0]) +end_count: float = float(values[1]) +step: float = float(values[2]) + +current: float = start_count +while current <= end_count: + print(round(current, 2)) + current += step +# - + +# ## Словарная ёлка. +# +# - Попробуем применить итератор к строкам, а не к числам. +# - Напишите программу, которая превращает строку слов в «ёлку» — с каждой строкой список становится длиннее. +# - Формат ввода +# - В одну строку через пробел вводятся слова разделенные пробелом. +# - Формат вывода +# - Несколько строк. В каждой следующей строке на одно слово больше. + +text: list[str] = input().split() +for value in accumulate(text, lambda x, y: f"{x} {y}"): + print(value) + +# ## Список покупок. +# +# - Поход в магазин часто вызывает проблемы. Если не подготовить список, можно уйти за хлебом, а вернуться с десятком пакетов. +# - Напишите программу, которая собирает пожелания семьи (мамы, папы и дочки) в единый список и приводит его в порядок. +# - Формат ввода +# - В трёх строках записаны желаемые продукты (через запятую и пробел). +# - Формат вывода +# - Отсортированный по алфавиту список продуктов с нумерацией. +# - Примечание +# - Помните, что итераторы можно применять к другим итераторам. + +# + +lines: list[str] = [] +for _ in range(3): + line: str = input().strip() + lines.append(line) + +lists_of_products: list[list[str]] = [] +for line in lines: + products: list[str] = [product.strip() for product in line.split(",")] + lists_of_products.append(products) + +all_products: list[str] = list(chain.from_iterable(lists_of_products)) +all_products.sort() + +for index, product_by in enumerate(all_products, 1): + print(f"{index}. {product_by}") +# - + +# ## Колода карт. +# +# - Пора сыграть в карты — но без одной из мастей. Сгенерируйте колоду игральных карт (от двойки до туза), исключив масть, которую вводит пользователь. +# - Формат ввода +# - Название масти, которая должна быть выброшена, передаётся в том же падеже, в котором она выводится на экран: «пик», «треф», «бубен» и «червей». +# - Формат вывода +# - Список карт в колоде по увеличению номинала, затем масти (как в преферансе). + +exclude_suit: str = input() +suits: list[str] = ["пик", "треф", "бубен", "червей"] +weights: list[str] = [ + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "валет", + "дама", + "король", + "туз", +] +suits.remove(exclude_suit) +deck: list[tuple[str, str]] = list(product(weights, suits)) +deck.sort(key=lambda card: (weights.index(card[0]), suits.index(card[1]))) +for card in deck: + print(f"{card[0]} {card[1]}") + +# ## Игровая сетка. +# +# - Ребята в классе решили устроить чемпионат по шашкам по принципу «каждый с каждым». +# - Напишите программу, которая составляет список всех возможных игр между учениками. +# - Формат ввода +# - В первой строке записано число учеников (N). +# - В каждой из последующих N строк записано одно имя. +# - Формат вывода +# - Список игр в формате: +# - <Игрок 1> - <Игрок 2> +# - Порядок игр не имеет значения. + +pop: list[str] = [] +numb: int = int(input()) +for _ in range(numb): + name: str = input() + pop.append(name) +for pair in combinations(pop, 2): + print(f"{pair[0]} - {pair[1]}") + +# ## Меню питания 2.0. +# +# - В детском саду ежедневно подают новую кашу на завтрак. +# - Напишите программу, которая строит расписание каш на ближайшие дни на основе заданного меню. +# - Формат ввода +# - Вводится натуральное число M — количество каш в меню. +# - В каждой из последующих M строк записано одно название каши. +# - В конце передается натуральное число N — количество дней. +# - Формат вывода +# - Вывести список каш в порядке подачи. + +count_porridge: int = int(input()) +porridges: list[str] = [] +for _ in range(count_porridge): + porridge: str = input().strip() + porridges.append(porridge) +count_day: int = int(input()) +infinite_menu = cycle(porridges) +schedule: list[str] = list(islice(infinite_menu, count_day)) +for porrige in schedule: + print(porrige) + +# ## Таблица умножения 3.0. +# +# - Местная фабрика канцелярских товаров заказала программу, которая генерирует таблицы умножения. +# - Давайте поможем производителю. +# - Напишите программу, которая выводит таблицу умножения размером N×N — построчно, по одному ряду на строку. +# - Формат ввода +# - Вводится одно натуральное число — требуемый размер таблицы. +# - Формат вывода +# - Таблица умножения заданного размера. + +numb_tab: int = int(input()) +for i_tab, j_tab in product(range(1, numb_tab + 1), repeat=2): + print(i_tab * j_tab, end=" " if j_tab < numb_tab else "\n") + +# ## Мы делили апельсин 2.0. +# +# - Аня, Боря и Вова решили съесть апельсин. Подскажите ребятам, как им его разделить. +# - Разработайте программу, которая выводит все возможные способы разделить заданное количество долек апельсина между тремя детьми так, чтобы каждому досталось хотя бы по одной, и ничего не осталось. +# - Формат ввода +# - В единственной строке записано количество долек апельсина (N). +# - Формат вывода +# - Таблица вариантов разделения апельсина. +# - Примечания +# - Каждому ребёнку должна достаться хотя бы одна долька апельсина. +# - Ни одной дольки не должно остаться. +# - Выводить варианты в порядке увеличения количества долек у Ани, следом Бори и затем Вовы. + +numb_div: int = int(input()) +print("А Б В") +for anna in range(1, numb_div - 1): + for borya in range(1, numb_div - anna): + vova: int = numb_div - anna - borya + if vova >= 1: + print(f"{anna} {borya} {vova}") + +# ## Числовой прямоугольник 3.0. +# +# - Ребята в детском саду вновь учатся считать, и воспитательница решила сделать так, чтобы им было проще освоить новый навык. +# - Для этого она хочет оформить список изучаемых чисел особым образом. +# - Дети справляются весьма быстро, поэтому ей требуется программа, которая способна строить числовые прямоугольники. +# - Напишите программу, которая строит числовой прямоугольник заданного размера, заполняя его числами по строкам. +# - Все столбцы должны быть одинаковой ширины — так прямоугольник будет выглядеть аккуратно. +# - Формат ввода +# - В первой строке записано число N — высота числового прямоугольника. +# - Во второй строке указано число M — ширина числового прямоугольника. +# - Формат вывода +# - Нужно вывести сформированный числовой прямоугольник требуемого размера. +# - Чтобы прямоугольник был красивым, каждый его столбец должен быть одинаковой ширины. + +height: int = int(input()) +width: int = int(input()) +total_numbers: int = height * width +max_width: int = len(str(total_numbers)) +for i in range(height): + start: int = i * width + 1 + end: int = start + width + row: list[str] = [f"{num:>{max_width}}" for num in range(start, end)] + print(" ".join(row)) + +# ## Список покупок 2.0. +# +# - Давайте вновь поможем человеку с покупками. +# - Разработайте программу, которая объединяет пожелания семьи в один аккуратный список продуктов. +# - Соберите все элементы в общий список, отсортируйте его по алфавиту и пронумеруйте. +# - Формат ввода +# - В первой строке задано натуральное число N — количество членов семьи. В следующих N строках записаны желаемые продукты (через запятую и пробел). +# - Формат вывода +# - Отсортированный по алфавиту список продуктов с нумерацией. + +numb_l: int = int(input()) +lines_l: list[str] = [] +for _ in range(numb_l): + line_l: str = input().strip() + lines_l.append(line_l) +lists_of_products_2: list[list[str]] = [] +for line_l in lines_l: + products_: list[str] = [product.strip() for product in line_l.split(",")] + lists_of_products_2.append(products_) +all_products_: list[str] = list(chain.from_iterable(lists_of_products_2)) +all_products_.sort() +for index, product_ in enumerate(all_products_, 1): + print(f"{index}. {product_}") + +# ## Расстановка спортсменов. +# +# - Расстановка спортсменов на старте — дело несложное, если знать, как подойти к задаче. +# - Напишите программу, которая выводит все возможные расстановки участников, учитывая их имена. +# - Формат ввода +# - В первой строке задано натуральное число N — количество спортсменов. В следующих N строках записаны имена спортсменов. +# - Формат вывода +# - Отсортированный по алфавиту список расстановок. +# - Имена в каждой строке выводить через запятую и пробел. + +numb_sp: int = int(input()) +names_sp: list[str] = [] +for _ in range(numb_sp): + name_sp: str = input().strip() + names_sp.append(name_sp) +all_permutations: list[tuple[str, ...]] = list(permutations(names_sp)) +sorted_permutations: list[tuple[str, ...]] = sorted(all_permutations) +for perm in sorted_permutations: + print(", ".join(perm)) + +# - Хорошо, спортсмены расставлены на старте. Вот только угадать финалистов практически невозможно. +# - Давайте напишем программу, которая выводит список возможных победителей — всех, кто может оказаться в числе призёров при любом раскладе. +# - Формат ввода +# - В первой строке задано натуральное число N — количество спортсменов. +# - В следующих N строках записаны имена спортсменов. +# - Формат вывода +# - Отсортированный по алфавиту список вариантов. +# - Имена в каждой строке выводить через запятую и пробел. + +numb_sport: int = int(input()) +names_sport: list[str] = [] +for _ in range(numb_sport): + name_sport: str = input().strip() + names_sport.append(name_sport) +all_permutations_: list[tuple[str, ...]] = list(permutations(names_sport)) +sorted_permutations_: list[tuple[str, ...]] = sorted(all_permutations_) +for perm in sorted_permutations_: + print(", ".join(perm)) + +# ## Список покупок 3.0. +# +# - В этот раз семья договорилась, что в целях экономии они будут совершать в день только три покупки. +# - Напишите программу, которая готовит все возможные варианты списков таких покупок. +# - Формат ввода +# - В первой строке задано натуральное число N — количество членов семьи. В следующих N строках записаны желаемые продукты (через запятую и пробел). +# - Формат вывода +# - Варианты списков покупок в алфавитном порядке. + +numb_list: int = int(input()) +lines_list: list[str] = [] +for _ in range(numb_list): + line_list: str = input().strip() + lines_list.append(line_list) +lists_of_products_ls: list[list[str]] = [] +for line_ls in lines_list: + products_ls: list[str] = [product.strip() for product in line_ls.split(",")] + lists_of_products_ls.append(products_ls) +all_products_ls: list[str] = list(chain.from_iterable(lists_of_products_ls)) +all_products_ls.sort() +for product_3 in permutations(all_products_ls, 3): + prroduct_str: str = " ".join(product_3) + print(prroduct_str) + +# ## Расклад таков... +# +# - Можно налить себе чай перед следующей задачей — и снова в бой! Виталий любит играть в карты. Он решил выяснить, какие есть вариации вытащить из колоды определённые тройки карт. Напишите программу, которая выводит список подходящих троек в лексикографическом порядке с учётом заданных условий. +# - Формат ввода +# - В первой строке записана масть, которая должна присутствовать в тройке. +# - Во второй строке записан достоинство, которого не должно быть в тройке. +# - Формат вывода +# - Выведите на экран первые 10 получившихся троек. +# - Карты в каждой комбинации должны быть отсортированы лексикографически (по строке названия карты). Карты комбинации выводятся через запятую с пробелом после неё. +# - Комбинации между собой также должны быть отсортированы в лексикографическом порядке по строке, представляющей комбинацию целиком. +# - Примечание +# - Обратите внимание: валет-дама-король-туз лексикографически упорядочены. Но «10 ...» лексикографически младше, чем «2 ...», а бубны младше, чем пики. +# - Масти в именительном и родительном падежах: + +required_suit: str = input().strip() +excluded_weight: str = input().strip() +suit_cases: dict[str, str] = { + "буби": "бубен", + "пики": "пик", + "трефы": "треф", + "черви": "червей", +} +suits_: list[str] = ["пик", "треф", "бубен", "червей"] +weights_: list[str] = [ + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "валет", + "дама", + "король", + "туз", +] +if required_suit in suit_cases: + required_suit_genitive: str = suit_cases[required_suit] +else: + required_suit_genitive = required_suit +deck_: list[str] = [] +for weight in weights_: + for suit in suits_: + card_: str = f"{weight} {suit}" + deck_.append(card_) +deck_.sort() +count: int = 0 +for combo in combinations(deck_, 3): + cards: list[str] = list(combo) + has_required_suit: bool = any(required_suit_genitive in card_ for card_ in cards) + has_excluded_weight: bool = any(f"{excluded_weight}" in card_ for card_ in cards) + if has_required_suit and not has_excluded_weight: + cards_sorted: list[str] = sorted(cards) + print(", ".join(cards_sorted)) + count += 1 + if count >= 10: + break + +# ## А есть ещё варианты? +# +# - Давайте вновь поможем Виталию — теперь его интересует, какой вариант расклада идёт сразу после уже полученного. +# - Напишите программу, которая находит следующий подходящий вариант тройки карт, соответствующий условиям. +# - Формат ввода +# - В первой строке записана масть, которая должна присутствовать в тройке. +# - Во второй строке записан достоинство, которого не должно быть в тройке. +# - В третьей строке записан предыдущий вариант полученный Виталием. +# - Формат вывода +# - Выведите следующий вариант расклада. +# - Примечание +# - Обратите внимание: валет-дама-король-туз лексикографически упорядочены. Но «10 ...» лексикографически младше, чем «2 ...», а бубны младше, чем пики. + +required_suit_: str = input().strip() +excluded_weight_: str = input().strip() +previous_combo_str: str = input().strip() +suit_cases_: dict[str, str] = { + "буби": "бубен", + "пики": "пик", + "трефы": "треф", + "черви": "червей", +} +required_suit_genitive_: str = suit_cases_.get(required_suit_, required_suit_) +suits_2: list[str] = ["пик", "треф", "бубен", "червей"] +weights_2: list[str] = [ + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "валет", + "дама", + "король", + "туз", +] +deck_2: list[str] = [f"{w} {s}" for w in weights_2 for s in suits_2] +deck_2.sort() +prev_csrds: list[str] = sorted(previous_combo_str.split(", ")) +found: bool = False +for combo in combinations(deck_2, 3): + cards_2: list[str] = sorted(combo) + has_suit: bool = any(required_suit_genitive_ in card for card in cards_2) + no_excluded: bool = not any( + card.startswith(excluded_weight_ + " ") for card in cards_2 + ) + if has_suit and no_excluded: + if found: + print(", ".join(cards_2)) + break + if cards_2 == prev_csrds: + found = True + +# ## Таблица истинности. +# +# - Вся современная электронно-вычислительная техника строится на Булевой алгебре, которая оперирует истинностью и ложностью высказываний (в Python это and, or, not). +# - Разработайте программу, которая для введённого логического выражения от переменных a, b, c строит таблицу истинности — то есть перебирает все возможные комбинации значений и вычисляет результат. +# - Формат ввода +# - Вводится логическое выражение от трех переменных (a, b, c) валидное для языка Python. +# - Формат вывода +# - Выведите таблицу истинности данного выражения. + +exp: str = input().strip() +print("a b c f") +for a_t, b_t, c_t in product([0, 1], repeat=3): + result_table: bool = eval( # pylint: disable=eval-used + exp, {"a": a_t, "b": b_t, "c": c_t} + ) + result_int_: int = 1 if result_table else 0 + print(f"{a_t} {b_t} {c_t} {result_int_}") + +# ## Таблица истинности 2. +# +# - Продолжим работу с таблицами истинности. +# - Теперь выражения могут содержать переменное количество переменных, обозначенных заглавными латинскими буквами. +# - Напишите программу, которая строит таблицу истинности для заданного логического выражения. +# - Формат ввода +# - Вводится логическое выражение от нескольких переменных валидное для языка Python. Все переменные заданы заглавными латинскими буквами. +# - Формат вывода +# - Выведите таблицу истинности данного выражения + +# + +expression: str = input().strip() +variables_: list[str] = sorted(set(re.findall(r"[A-Z]", expression))) + +if not variables_: + print("F") + print("1" if eval(expression) else "0") # pylint: disable=eval-used + sys.exit() + +header: str = " ".join(variables_) + " F" +print(header) + +for combination in product([0, 1], repeat=len(variables_)): + var_dict: dict[str, int] = dict(zip(variables_, combination)) + try: + result: bool = eval(expression, var_dict) # pylint: disable=eval-used + result_value: str = "1" if result else "0" + except ValueError: + result_value = "E" + values_str: str = " ".join(str(v) for v in combination) + print(f"{values_str} {result_value}") +# - + +# ## Таблица истинности 3. +# +# - На этот раз придётся справиться с выражением, в котором встречаются нестандартные логические операции: импликация, строгая дизъюнкция и эквивалентность. Они не поддерживаются в Python напрямую, но вы сможете реализовать их самостоятельно. +# - Напишите программу, которая для заданного логического выражения строит таблицу истинности, включая поддержку следующих операций: +# - -> — импликация +# - ^ — строгая дизъюнкция +# - ~ — эквивалентность +# - Формат ввода +# - Вводится логическое выражение от нескольких переменных. +# - Возможное содержание выражения: +# - Заглавная латинская буква — переменная; +# - not — отрицание; +# - and — конъюнкция; +# - or — дизъюнкция; +# - ^ — строгая дизъюнкция; +# - -> — импликация; +# - ~ — эквивалентность; +# - () — логические скобки. +# - Формат вывода +# - Выведите таблицу истинности данного выражения. + +# + +OPERATORS: dict[str, str] = { + "not": "not", + "and": "and", + "or": "or", + "^": "!=", + "->": "<=", + "~": "==", +} +PRIORITY: dict[str, int] = { + "not": 0, + "and": 1, + "or": 2, + "^": 3, + "->": 4, + "~": 5, + "(": 6, +} + + +def parse_expression(expr: str, variables: list[str]) -> list[str]: + """parse_expression.""" + stack: list[str] = [] + result_9: list[str] = [] + expr = expr.replace("(", "( ").replace(")", " )") + for token in expr.split(): + if token in variables: + result_9.append(token) + elif token == "(": + stack.append(token) + elif token == ")": + while stack[-1] != "(": + result_9.append(OPERATORS[stack.pop()]) + stack.pop() + elif token in OPERATORS: + while stack and PRIORITY[token] >= PRIORITY.get(stack[-1], 100): + result_9.append(OPERATORS[stack.pop()]) + stack.append(token) + while stack: + result_9.append(OPERATORS[stack.pop()]) + return result_9 + + +def evaluate(rpn_expr: list[str], v_dict: Mapping[str, int | bool]) -> int: + """evaluate.""" + stack: list[int | bool] = [] + for token in rpn_expr: + if token in v_dict: + stack.append(v_dict[token]) + elif token == "not": + operand = stack.pop() + stack.append(not operand) + else: + rhs = stack.pop() + lhs = stack.pop() + if token == "and": + result_ev = lhs and rhs + elif token == "or": + result_ev = lhs or rhs + elif token == "!=": + result_ev = lhs != rhs + elif token == "<=": + result_ev = (not lhs) or rhs # implication + elif token == "==": + result_ev = lhs == rhs + else: + raise ValueError(f"Unknown operator: {token}") + stack.append(result_ev) + return int(stack.pop()) + + +log_expr: str = input().strip() +vars_in_expr: list[str] = sorted({ch for ch in log_expr if ch.isupper()}) +rpn: list[str] = parse_expression(log_expr, vars_in_expr) +print(*vars_in_expr, "F") +for bool_values in product([0, 1], repeat=len(vars_in_expr)): + value_pairs = zip(vars_in_expr, (bool(v) for v in bool_values)) + val_map: dict[str, bool] = dict(value_pairs) + result_10: int = evaluate(rpn, val_map) + print(*bool_values, result_10)