Пьяный Питон
102 subscribers
8 photos
11 files
3 links
Download Telegram
первое задание:
Forwarded from Владимир Курбатов
Задача 1.docx
16 KB
Хадача №1 "Покер"
Forwarded from Владимир Курбатов
Задача 2.docx
14.9 KB
Задача №2 "Агент 007"
Пин-код
Дана клавиатура со следующей раскладкой:
┌───┬───┬───┐
│ 1 │ 2 │ 3 │
├───┼───┼───┤
│ 4 │ 5 │ 6 │
├───┼───┼───┤
│ 7 │ 8 │ 9 │
└───┼───┼───┘
│ 0 │
└───┘

Ваш секретный агент уже дал вам пин-код. Однако он также сказал, что возможно, что каждая из цифр, может быть другой соседней цифрой (по горизонтали или вертикали, но не по диагонали).
Предположим, секретный агент дал вам код: 46:
# Instead of the 4 it could also be 1, 5, or 7.
# Instead of the 6 it could also be 3, 5, or 9.

crack_pincode("46") ➞
["13","15","16","19","43","45","46","49","53","55","56","59","73","75","76","79"]

Создайте функцию, которая принимает аргумент pincode вашего секретного агента и возвращает список всех возможных вариантов пин-кодов.
Тест:
1. crack_pincode("0") ➞ ["0", "8"]

2. crack_pincode("2") ➞ ["1", "2", "3", "5"]

3. crack_pincode("007") ➞ ["004","007","008","084","087","088","804","807","808","884","887","888"]
Forwarded from Владимир Курбатов
Задача 3.docx
29.8 KB
Задача № 3 "Пr2"
Площадь
Создайте функцию, которая возвращает площадь перекрытия между двумя прямоугольниками. Функция получает два прямоугольника, каждый с координатами нижнего левого угла, шириной и высотой rect = [x, y, width, height].
Примеры:
overlapping_rectangles([ 2, 1, 3, 4 ], [ 3, 2, 2, 5 ]) ➞ 6



overlapping_rectangles([ 2, -9, 11, 5 ], [ 5, -11, 2, 9 ]) ➞ 10



Тест:
overlapping_rectangles([ -8, -7, 4, 7 ], [-5, -9, 4, 7 ])
Forwarded from Владимир Курбатов
Задача 4.docx
14.6 KB
Задача № 4 "Миноискатель"
Сапер
Создайте функцию num_grid, которая принимает сетку из символов # и -, где каждая решетка (#) представляет собой мину, а каждая черточка (-) представляет собой свободное от мин место. Функция должна возвращать список, в котором каждая черточка заменена цифрой, обозначающей количество мин, непосредственно примыкающих к точке (по горизонтали, вертикали и диагонали).
Примеры:
num_grid ([
["-", "-", "-", "-", "#"],
["-", "-", "-", "-", "-"],
["-", "-", "#", "-", "-"],
["-", "-", "-", "-", "-"],
["#", "-", "-", "-", "-"]
]) ➞ [
["0", "0", "0", "1", "#"],
["0", "1", "1", "2", "1"],
["0", "1", "#", "1", "0"],
["1", "2", "1", "1", "0"],
["#", "1", "0", "0", "0"]
]


Тест:
l = [
["-", "-", "-", "-", "-", "#", "#", "-", "#", "-", "-", "#", "-", "#", "-", "-"],
["-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "#", "#", "#", "#"],
["#", "#", "-", "-", "-", "-", "-", "-", "-", "#", "-", "-", "-", "-", "-", "-"],
["-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-"],
["#", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-"],
["#", "-", "-", "-", "-", "-", "-", "-", "-", "-", "#", "-", "-", "-", "-", "-"],
["#", "-", "-", "-", "-", "-", "-", "-", "-", "#", "-", "-", "-", "-", "-", "#"],
["-", "#", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "#"],
["-", "-", "-", "#", "#", "-", "-", "-", "#", "-", "-", "-", "-", "-", "-", "#"],
["-", "-", "-", "-", "-", "#", "#", "#", "-", "-", "-", "-", "-", "-", "-", "-"],
["-", "-", "-", "-", "-", "-", "#", "-", "-", "-", "-", "#", "-", "-", "-", "-"],
["-", "-", "-", "-", "-", "-", "-", "-", "-", "#", "-", "-", "-", "-", "-", "-"],
["-", "#", "-", "-", "-", "-", "-", "-", "-", "-", "-", "#", "-", "-", "-", "-"],
["-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "#", "-", "-", "-", "-", "#"],
["#", "-", "-", "-", "#", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-"],
["#", "-", "#", "-", "#", "-", "-", "-", "-", "#", "-", "-", "-", "-", "-", "-"]
]
🤔1
🍻🐍 ПЬЯНЫЙ ПИТОН СНОВА В ДЕЛЕ!
И снова наливает... задачки на Python!

Йоу, кодер! Готов расчехлить ноут и порешать задачки быстрее всех? Тогда держи хвост пистолетом и приходи 24 мая в 19:00 в Академпарк (Николаева 12, холл, кафе CAVA) на легендарную дуэль программистов — 🐍 ПЬЯНЫЙ ПИТОН!


Будет всё, как ты любишь:

💥 20 минут на раунд — решай быстро или/и пей!
🍻 Пользуешься читами? Лови штрафняк
🏆 Один выживший — один победитель, и он унесёт с собой огромный приз и вечную славу


Как влиться в эту вакханалию синтаксиса?

🔸 Пройди отбор и получи приглашение 👉 ЖМИ НА ССЫЛКУ
https://forms.yandex.ru/u/6309c839fb7c530c0eb1a28b/

🔸 Принеси свой ноут (желательно трезвый), зарядку и мозг

🔸 Будь 18+, а не школьник

🔸 Подготовься морально, физически и алкоголически

🧐 Не хочешь участвовать — приходи поржать, похлопать и увидеть, как одарённые айтишники пьют и фейлят в прямом эфире!


Smart Picnic будет жарким — не пропусти!

📍 24 мая, 19:00
📍 Академпарк, Николаева 12, холл, кафе CAVA
📍 Пьяный Питон ждёт тебя… уже со стаканом

🐍: “Пиши код — или пей! А лучше делай все вместе и сразу.”
🔥9🤯4👏2👍1
Задача #0: Оптимальная стратегия

Условие задачи:
Два пирата играют в игру, где перед ними выложены монеты (пиастры) в ряд. Во время хода игрок может взять одну монету либо с левого , либо с правого конца ряда. Игроки ходят по очереди, первый — первым. Оба игрока стремятся максимизировать свой выигрыш и при этом минимизировать выигрыш противника . То есть они действуют по оптимальной стратегии .


Задача:
Написать программу, которая определяет:
• Кто победит (первый или второй игрок),
• Какой выигрыш получит победитель,
• Или объявить ничью, если суммы игроков равны.

Ввод:
Первая строка — натуральное число n (количество монет).
Вторая строка — последовательность целых чисел через пробел — достоинства монет.

Вывод:
• Если победил первый игрок: Победил 1-й игрок, сумма выигрыша: X
• Если второй: Победил 2-й игрок, сумма выигрыша: X
• Если ничья: Ничья: игроки выиграли по X


Пример:
Ввод:
3
5 3 7

Вывод:
Победил 1-й игрок, сумма выигрыша: 10
Задача #1: "Ракета на два места"

Условие:
Перед запуском ракеты нужно выполнить ряд задач, каждая из которых зависит от предыдущих. Представьте это в виде ориентированного графа без циклов и выполните топологическую сортировку.

Ввод:
Сначала перечислены все задачи (каждая с новой строки).
Затем идёт число m — количество зависимостей.
Далее m строк вида A B, означающих, что задача A должна быть выполнена перед B.

Вывод: Нужно пункты плана по порядку, нумерованным списком


Пример:
Ввод
Подготовить двигатель
Залить топливо
Проверить системы
Установить курс
Запустить двигатели
4
Подготовить двигатель Залить топливо
Подготовить двигатель Проверить системы
Залить топливо Запустить двигатели
Проверить системы Запустить двигатели

Вывод:
1. Подготовить двигатель
2. Установить курс
3. Залить топливо
4. Проверить системы
5. Запустить двигатели
❤2👍2
Задача #2: "Незнайка на Луне"

После множества неудачных экспериментов с ракетой Незнайка и его друзья из Цветочного города наконец-то добрались до Луны! Там они обнаружили удивительные лунные тоннели, соединяющие кратеры между собой. Теперь им нужно разобраться, как пройти от одного места к другому, найти все возможные пути, выяснить, кто первый доберётся до главного кристалла, или даже спасти Знайку, который застрял где-то в системе.

Задача: Дан граф, представляющий лунные тоннели. Вершины — кратеры, рёбра — тоннели. Незнайка находится в вершине A, а выход — в вершине B. Нужно определить, существует ли путь от A до B.

Входящая строка:
Первая строка: Количество кратеров (вершин графа) n.
Вторая строка: Список названий кратеров через пробел.
Третья строка: Количество тоннелей (рёбер графа) m.
Следующие m строк: Пары кратеров X Y, означающие, что есть тоннель из X в Y (ориентированное ребро).
Последняя строка: Пара A B — начальный и конечный кратеры.

Вывод:
True/False


Пример
Ввод:
5
A B C D E
4
A B
B C
C D
D E
A E

Вывод:
True
Задача #3: Сортировка почти отсортированного списка

Условие:
У вас есть список целых чисел, в котором каждое число находится не дальше чем на 2 позиции от своей позиции в отсортированном порядке.

Ваша задача — отсортировать список как можно быстрее, используя знание этого свойства. Нельзя использовать sorted() или list.sort().

Формат ввода:
На вход подаётся одна строка — список целых чисел, разделённых пробелами. Например:
3 1 2 5 4 6

Формат вывода:
Выведите отсортированный список в одну строку, числа через пробел. Например:
1 2 3 4 5 6

Ограничения:
Длина списка: до 10⁶ элементов.
Все числа по модулю ≤ 10⁹.
Время на выполнение: 1 секунда.
Использование sorted() и sort() запрещено (будет проверяться).
Задача #4: Задача: "Переполох на пикнике"

Ситуация:

На ежегодном фестивале Смарт Пикник устроили необычную инсталляцию: огромное количество контейнеров с едой, вложенных друг в друга, как матрёшки. Контейнеры могут содержать либо:

- еду (целое число),
- другие контейнеры,
- или вообще ничего.

Один из участников — питон по кличке Перельман , который немного переборщил с коктейлями из сыра и теперь ползает по этой пирамиде контейнеров , собирая еду. Но он ползёт строго по определённому алгоритму , ведь он же умный питон !

Задача:
Напишите программу, которая обработает структуру контейнеров (вложенный список) и выполнит несколько операций над ней:
Найти список всех продуктов в порядке их следования , если питон "проползает" через структуру слева направо и вглубь (flat-лист).
Найти минимальную глубину вложенности , где находится целое число.
Определить максимальную глубину вложенности любого элемента.
Найти среднее значение глубин всех чисел с точностью до двух знаков после запятой.
Вычислить баланс вложенности : для каждого уровня подсчитать разницу между количеством списков и чисел.

Формат ввода:
Входной файл содержит один корректный вложенный список , где:
элементы — целые числа или списки,
вложенность не ограничена.

Формат вывода:
Flat-лист всех продуктов (в порядке обхода слева направо и вглубь).
Минимальная глубина, на которой находится число.
Максимальная глубина вложенности любого элемента.
Среднее значение глубин всех чисел (округлить до 2 знаков).
Баланс вложенности для каждого уровня (разница между количеством списков и чисел).


Пример
Ввод:
[[[1], 2], [[[3]], [4, [5]]]]

Вывод:
1. [1, 2, 3, 4, 5]
2. 2
3. 4
4. 3.2
5. {0: 1, 1: 2, 2: 2, 3: 0, 4: -2}
ПОБЕДИТЕЛЬ ПЬЯНОГО ПИТОНА 2025 🐍
👍8🎉5❤3