Назад к задачам
Junior — Middle+
8

Нахождение наименьшего объёма баков для полной отливки всех сосудов

Получайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Условие задачи

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

  • Сосуды отливаются последовательно, в том же порядке, в каком они заданы.
  • Каждый сосуд должен быть отлит целиком.
  • Если текущий сосуд не помещается в частично заполненный бак, берётся следующий пустой бак.

Пример: Имеем 4 бака и сосуды с объёмами: 1 3 2 4 10 8 4 2 5 3. Достаточно сделать баки объёмом 12 литров, тогда перелив возможен так: 1 3 2 4 | 10 | 8 4 | 2 5 3