Ctrl K

Дробилка валунов

Лёгкая
На стройке работает дробилка. В её бункере лежат валуны, вес i-го равен weights[i]. За один цикл дробилка берёт два **самых тяжёлых** валуна и сталкивает их. Пусть их веса a ≤ b: - если a == b, оба валуна рассыпаются в пыль; - иначе лёгкий валун рассыпается, а тяжёлый теряет часть массы и весит теперь b - a. Циклы повторяются, пока в бункере больше одного валуна. Верните вес оставшегося валуна или 0, если не осталось ни одного.
Пример 1
weights=[6, 3, 9, 2] → 2

9 и 6 → остаётся 3, куча [3, 3, 2]; 3 и 3 разбиваются оба, остаётся [2].

Пример 2
weights=[5, 5] → 0

Два одинаковых валуна уничтожают друг друга — не остаётся ничего, ответ 0.

Пример 3
weights=[14] → 14
Ограничения
  • 1 ≤ len(weights) ≤ 30
  • 1 ≤ weights[i] ≤ 1000
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиМедали и места ЛёгкаяСредний балл по пяти лучшим ЛёгкаяСамые тусклые ряды ЛёгкаяДва числа минус один ЛёгкаяЛучшие оценки по порядку Лёгкая
загружаем Python…
Вход
weights=[6, 3, 9, 2]
Ожидается
2

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 108 тестов на сервере, включая скрытые.