https://us06web.zoom.us/j/87600689761?pwd=NmlYNjNJT0lmOW9KVVJ3R3NFSGlPQT09
Идентификатор конференции: 876 0068 9761
Код доступа: 388962
Идентификатор конференции: 876 0068 9761
Код доступа: 388962
Zoom Video
Join our Cloud HD Video Meeting
Zoom is the leader in modern enterprise video communications, with an easy, reliable cloud platform for video and audio conferencing, chat, and webinars across mobile, desktop, and room systems. Zoom Rooms is the original software-based conference room solution…
👍1
Пин-код
Дана клавиатура со следующей раскладкой:
┌───┬───┬───┐
│ 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"]
Дана клавиатура со следующей раскладкой:
┌───┬───┬───┐
│ 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"]
Площадь
Создайте функцию, которая возвращает площадь перекрытия между двумя прямоугольниками. Функция получает два прямоугольника, каждый с координатами нижнего левого угла, шириной и высотой 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 ])
Создайте функцию, которая возвращает площадь перекрытия между двумя прямоугольниками. Функция получает два прямоугольника, каждый с координатами нижнего левого угла, шириной и высотой 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 ])
Сапер
Создайте функцию 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 = [
["-", "-", "-", "-", "-", "#", "#", "-", "#", "-", "-", "#", "-", "#", "-", "-"],
["-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "#", "#", "#", "#"],
["#", "#", "-", "-", "-", "-", "-", "-", "-", "#", "-", "-", "-", "-", "-", "-"],
["-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-"],
["#", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-"],
["#", "-", "-", "-", "-", "-", "-", "-", "-", "-", "#", "-", "-", "-", "-", "-"],
["#", "-", "-", "-", "-", "-", "-", "-", "-", "#", "-", "-", "-", "-", "-", "#"],
["-", "#", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "#"],
["-", "-", "-", "#", "#", "-", "-", "-", "#", "-", "-", "-", "-", "-", "-", "#"],
["-", "-", "-", "-", "-", "#", "#", "#", "-", "-", "-", "-", "-", "-", "-", "-"],
["-", "-", "-", "-", "-", "-", "#", "-", "-", "-", "-", "#", "-", "-", "-", "-"],
["-", "-", "-", "-", "-", "-", "-", "-", "-", "#", "-", "-", "-", "-", "-", "-"],
["-", "#", "-", "-", "-", "-", "-", "-", "-", "-", "-", "#", "-", "-", "-", "-"],
["-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "#", "-", "-", "-", "-", "#"],
["#", "-", "-", "-", "#", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-", "-"],
["#", "-", "#", "-", "#", "-", "-", "-", "-", "#", "-", "-", "-", "-", "-", "-"]
]
Создайте функцию 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
📍 Пьяный Питон ждёт тебя… уже со стаканом
🐍: “Пиши код — или пей! А лучше делай все вместе и сразу.”
И снова наливает... задачки на 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
Условие задачи:
Два пирата играют в игру, где перед ними выложены монеты (пиастры) в ряд. Во время хода игрок может взять одну монету либо с левого , либо с правого конца ряда. Игроки ходят по очереди, первый — первым. Оба игрока стремятся максимизировать свой выигрыш и при этом минимизировать выигрыш противника . То есть они действуют по оптимальной стратегии .
Задача:
Написать программу, которая определяет:
• Кто победит (первый или второй игрок),
• Какой выигрыш получит победитель,
• Или объявить ничью, если суммы игроков равны.
Ввод:
Первая строка — натуральное число 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. Запустить двигатели
Условие:
Перед запуском ракеты нужно выполнить ряд задач, каждая из которых зависит от предыдущих. Представьте это в виде ориентированного графа без циклов и выполните топологическую сортировку.
Ввод:
Сначала перечислены все задачи (каждая с новой строки).
Затем идёт число 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
После множества неудачных экспериментов с ракетой Незнайка и его друзья из Цветочного города наконец-то добрались до Луны! Там они обнаружили удивительные лунные тоннели, соединяющие кратеры между собой. Теперь им нужно разобраться, как пройти от одного места к другому, найти все возможные пути, выяснить, кто первый доберётся до главного кристалла, или даже спасти Знайку, который застрял где-то в системе.
Задача: Дан граф, представляющий лунные тоннели. Вершины — кратеры, рёбра — тоннели. Незнайка находится в вершине 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() запрещено (будет проверяться).
Условие:
У вас есть список целых чисел, в котором каждое число находится не дальше чем на 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}
Ситуация:
На ежегодном фестивале Смарт Пикник устроили необычную инсталляцию: огромное количество контейнеров с едой, вложенных друг в друга, как матрёшки. Контейнеры могут содержать либо:
- еду (целое число),
- другие контейнеры,
- или вообще ничего.
Один из участников — питон по кличке Перельман , который немного переборщил с коктейлями из сыра и теперь ползает по этой пирамиде контейнеров , собирая еду. Но он ползёт строго по определённому алгоритму , ведь он же умный питон !
Задача:
Напишите программу, которая обработает структуру контейнеров (вложенный список) и выполнит несколько операций над ней:
Найти список всех продуктов в порядке их следования , если питон "проползает" через структуру слева направо и вглубь (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}