Ctrl K

Растущие списания

Средняя
У клиента два счёта: на первом first монет, на втором second. Подписка списывает деньги каждый день, и сумма растёт: в день i (дни нумеруются с 1) списывается i монет. Деньги всегда берутся со счёта, где сейчас больше монет; при равенстве — с первого. Если на этом счёте меньше i монет, списание не проходит и подписка отключается. Верните список [day, rest1, rest2]: номер дня, когда списание не прошло, и остатки на первом и втором счетах в этот момент.
Пример 1
first=3, second=1 → [3, 0, 1]

День 1: со счёта 1 списывают 1 (осталось 2). День 2: на счёте 1 больше — списывают 2 (осталось 0). День 3: больше на счёте 2, но там лишь 1 < 3 — списание не проходит.

Пример 2
first=0, second=0 → [1, 0, 0]

Уже в первый день списать 1 не с чего.

Пример 3
first=5, second=9 → [5, 1, 3]
Ограничения
  • 0 ≤ first, second ≤ 2³¹ − 1
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиУмножение длинных чисел в строках СредняяПроизведение комплексных чисел в строках СредняяСумма цепочки дробей СредняяНайдите x СредняяОбратный отсчёт с операциями по кругу Средняя
загружаем Python…
Вход
first=3, second=1
Ожидается
[3, 0, 1]

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