Telegram Web Link
🎓 Анонс задачи 57: Парковка (решение будет в пятницу)

Дана схема улицы, ктр содержит выезды (Exit - E), остановки (Stop - S) и пешеходные переходы (Crossing - C), остальные участки улицы обозначены на схеме дефисом (-).

Есть несколько правил парковки:
- нельзя парковать машину перед выездом
- нельзя парковать машину на остановке и менее чем в 10 метрах до нее, парковаться после остановки можно.
- нельзя парковать машину на пешеходном переходе и менее чем в 5 метрах до него и после него

Схема улицы разбита на участки длиной в 5 метров, 5 метров - длина парковки для автомобиля.

Написать программу, ктр для каждой схемы улицы выведет кол-во возможных парковочных мест.

Например,
1.
- - -S--C-E--С- -
Вывод: 4
2.
- -С--С--С--С- -
Вывод: 2
Выкладываю решения 57й задачи ("Парковка") от наших подписчиков. Хочу отдельно отметить @mrmeison и Антона.

Костя (@mrmeison) прислал два варианта решения, одно на JS, второе на Scala.

Антон прислал подробнейший разбор на языке Rust, также есть ссылка на тест.

http://telegra.ph/Task-57-1-Parkovka-12-28
🎓 Анонс задачи 58: Формула 1 (решение будет 3 января!)

В Формуле 1 изменились правила. Теперь перед тем, как выехать, команда может выполнить нектр модернизации болида.

Для каждой модернизации известно, на сколько она увеличивает скорость болида, а также время, за ктр она может быть выполнена.
Можно выполнить несколько различных модернизаций, но каждая модернизация может быть выполнена не более одного раза.

Дано расстояние трассы Dist (метры),
Скорость болида без модернизации - V (м/с)
Vi - Массив, i-й элемент массива содержит прирост скорости (м/с) после модернизации болида.
Ti - Массив, i-й элемент массива содержит время (сек) затрачиваемое на i-ю модернизацию из массива Vi

Вывести минимальное время, ктр потребуется пилоту для того, чтобы проехать трассу длиной l с учетом времени на всевозможные модернизации болида.

Например,
Dist = 100
V = 5
Vi = [ 5, 5 ]
Ti = [ 3, 3 ]

Вывод:
12.66
В канун Нового года мне хочется поздравить всех вас и в очередной раз поблагодарить за вашу активность!

Вы молодцы, и я верю, что в новом году нас ждёт ещё больше проектов, идей, интересных задач и решений, и не только алгоритмических 😜

И в качестве поощрения для самых активных подписчиков @Unilecs я отметил лучших из лучших, тех, кто был особенно активен и регулярно прокачивал навыки, присылая нам свои решения.

Оставайтесь с нами, в 2018 году будет ещё интереснее! ☃️
Алгоритмизация - это основа основ в программировании и разработке. Именно поэтому многие IT-компании дают алгоритмические задачки на собеседованиях, так как это единственный способ понять, на что способен программист буквально за полчаса, час.

Я знаю, что наш канал читают и нектр hh-ры, тех лиды и владельцы стартапов. Представляю вам рейтинг самых активных подписчиков канала @UniLecs.

1. @mrmeison (11 решенных задач, языки - JavaScript, Scala)
Костя - наш самый активный подписчик! 11 присланных задач и, судя по качеству кода и сложности решенных задач, он очень крутой разработчик.

2. @yuliok_07 (7 решенных задач, языки - Python)
Среди наших подписчиков не так много девушек и тем почетнее второе место Юли. Юля присылала решения для сложнейших задач по динамическому программированию, к тому же каждое ее решение сопровождалось комментариями и ясным кодом. Молодец!

3. @pakrulin (6 решенных задач, языки - JavaScript, CoffeeScript)
Саше достается 3е место, его стихия - это веб-программирование. Честно сказать, я был очень удивлён, когда увидел его решения на CoffeScript.

4. @lPestl (3 решенные задачи, языки - C++, F#, JS)
Михаил присоединился к нам не так давно, но уже стал одним из активнейших подписчиков. И он единственный, кто присылал мне решения на 3х разных языках! Все его решения отличались подробным разбором задач и масштабируемостью.

5. @fangorn312 (3 решенные задачи, языки - C++ )
@fangorn312 - это крутой олимпиадник! Неудивительно, что использовал он только канонические С++ !

6. @beraliv (3 решенные задачи, языки - JS)
Алексей - один из наших самых первых подписчиков. Все его решения всегда проходили проверку с 1го раза и также отличались очень качественным кодом. Кстати Алексей сам присылал нам интересные задачи.
👍1
Решения от наших подписчиков мы выложим завтра!

А анонс новой задачи в пятницу, новогодние праздники все таки, так что отдохните😁

Еще раз всех с Новым Годом ! ☃️
Начинаем новый год с разминки!
Вот вам задачка уровня junior-a из раздела жадных алгоритмов.

🎓 Анонс задачи 59: Заказы (решение будет в понедельник)
Фирма получила некоторые проекты и разбила их на меньшие независимые заказы с разными стоимостями. Предполагается, что все заказы могут быть выполнены за одну единицу времени. Фирма, имея ограниченное время, должна выяснить, сколько в наилучшем случае, она сможет заработать, принимая более ценные заказы и отклоняя другие.

Дано время t, ктр имеется в распоряжении фирмы и массив, ктр содержит значения стоимости заказов.
Напишите функцию, ктр выведет максимальную заработанную сумму денег, ктр можно получить в пределах доступного времени.

Например,
1. t = 3, Arr = [1, 1, 1, 1, 1];
Вывод: 3

2. t = 4, Arr = [11, 2]
Вывод: 13

3. t = 4, Arr = [8, 2, 9, 17, 4, 4, 10]
Вывод: 44
Задача была довольно простая, поэтому неудивительно, что многие из вас ее решили.
Публикую ваши решения, из новинок реализации на Swift, Kotlin, Java.
Для новичков будет полезно посмотреть решения на различных языках программирования!

http://telegra.ph/Task-59-1-Zakazy-01-07
А мы потихоньку набираем обороты после праздников, задачка из раздела связных списков, поехали !

🎓 Анонс задачи 60: 'Сложение' связных списков (решение будет в четверг)
Два числа хранятся в виде связных списков, в которых каждый узел представляет один разряд.
Все цифры хранятся в обратном порядке, при этом младший разряд (единицы) хранится в начале списка. Размер списков одинаков.
Напишите функцию, которая суммирует два числа и возвращает результат в виде связного списка.

Пример:
(4 -> 5 ->7 ) + (8 -> 2 -> 1), то есть 754 + 128.

Вывод:
2 8 8 (то есть сумма 882)
Ребят, огромное спасибо за присланные решения к 60й задаче, их было так много, что мы не успели все проверить. Поэтому опубликуем их на выходных!
А пока анонс следующей задачи!

🎓 Анонс задачи 61: Дорожные службы (решение будет в понедельник)
Дорожным службам нужно обработать дороги антигололедным реагентом. В каждом районе только одна машина, она должна ночью обьехать все дороги этого района. Машина выезжает из гаража и должна туда же вернуться.
- Машина может обрабатывать тольку одну проезжую полосу дороги за один проезд. Все дороги прямые и с одной полосой в каждом направлении.
- Машина может поворачивать на любом перекрестке в любую сторону, также может развернуться.
- Машина при обработке едет со скоростью 20 км/час, в обычном режиме - 50 км/час.
- Возможность проехать все дороги всегда существует.
Необходимо выяснить какое минимальное время нужно машине, чтобы обработать все проезжие полосы всех дорог в своем раойне и вернуться обратно в гараж.

Входные данные:
Даны координаты гаража (начальной точки) - x, y.
Массив, каждый элемент ктр это координаты начала и конца дороги.

Напишите функцию, ктр вернет значение минимального времени (в минутах, округлите до целого), необходимое для обработки всех дорог и возврата обратно.

Пример:
x = 0, y = 0,
Arr = [
{ start: { x = 0, y = 0 }, end: { x = 10000, y = 10000 }},
{ start: { x = 5000, y = -10000 }, end: { x = 5000, y = 10000 }},
{ start: { x = 5000, y = 10000 }, end: { x = 10000, y = 10000 }}
]
Вывод: ~235 минут
🎓 Анонс задачи 62: Подарки (решение будет в четверг)

Детям на новый год раздавали пакеты с подарками, в каждый пакет раскладывали апельсины.
Сначала разложили апельсины по m штук в каждый пакет, но не получилось, на один из пакетов пришелся m-1 апельсин. Когда попробовали положить по m-1 апельсина, то осталось m-2.
Попробовали разложить по m-2 апельсина, осталось m-3.
Попробовали положить по 2 апельсина, остался 1.
Нужно выяснить какое кол-во апельсинов было изначально.

Входные данные:
m - кол-во апельсинов (1 < m <= 1000), ктр изначально планировали разложить по подаркам.

Вывод:
наименьшее возможное кол-во апельсинов, ктр были изначально.

Пример:
m - 4
Вывод: 11.
2025/07/08 17:53:57
Back to Top
HTML Embed Code: