Ctrl K

Раздача по кругу с ростом

Лёгкая
Ведущий раздаёт supply наклеек people детям, которые сидят в кругу. Первому ребёнку он даёт 1 наклейку, второму — 2, и так далее: каждая следующая выдача на одну наклейку больше предыдущей. Дойдя до последнего ребёнка, ведущий продолжает с первого, не сбрасывая счёт (то есть первый во втором круге получает people + 1). Когда наклеек не хватает на очередную выдачу целиком, ребёнок, до которого дошла очередь, получает все оставшиеся, и раздача заканчивается. Верните массив длины people: сколько наклеек в итоге у каждого ребёнка.
Пример 1
supply=12, people=3 → [5, 4, 3]

Первый круг: 1, 2, 3 (осталось 6). Второй круг: первому 4 (осталось 2), второму положено 5, но есть только 2. Итог [5, 4, 3].

Пример 2
supply=4, people=5 → [1, 2, 1, 0, 0]

Первому 1, второму 2, третьему оставшаяся 1; остальным ничего.

Пример 3
supply=1, people=1 → [1]
Ограничения
  • 1 ≤ supply ≤ 10⁹
  • 1 ≤ people ≤ 1000
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСумма двоичных строк ЛёгкаяСвернуть число до одной цифры ЛёгкаяСчиталка тройками и пятёрками ЛёгкаяСложение длинных чисел в строках ЛёгкаяНечётные счётчики после нажатий Лёгкая
загружаем Python…
Вход
supply=12, people=3
Ожидается
[5, 4, 3]

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