Ctrl K

Делёж на троих с потолком

Средняя
Трое друзей несут в поход total одинаковых банок консервов. Каждый готов взять от нуля до cap банок включительно, и все банки нужно разобрать. Сколькими способами можно распределить банки? Способы различаются тем, сколько банок досталось каждому конкретному другу: раскладки (2, 1, 0) и (0, 1, 2) — разные. Оба числа бывают до миллиона — простой перебор пар может не успеть.
Пример 1
total=4, cap=2 → 6

Подходят (2, 2, 0), (2, 0, 2), (0, 2, 2), (2, 1, 1), (1, 2, 1) и (1, 1, 2) — шесть способов.

Пример 2
total=7, cap=2 → 0

Втроём по два максимум можно унести только 6 единиц, на 7 не хватит.

Пример 3
total=2, cap=5 → 6
Ограничения
  • 1 ≤ total ≤ 10⁶
  • 1 ≤ cap ≤ 10⁶
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиXOR каждого подмножества ЛёгкаяДелёж на троих с потолком ЛёгкаяПеремешать в делящийся палиндром СложнаяK-й зигзаг из чётных и нечётных СложнаяСколько маршрутов по сетке Средняя
загружаем Python…
Вход
total=4, cap=2
Ожидается
6

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