Есть прямая канализация, состоящая из
секторов, каждый сектор пронумерован и нумерация стартует с нуля.
В канализации находится
призраков, в каждом секторе канализации может быть не более одного призрака.
Имеется две последовательности
и
,
содержит в себе номер сектора, в котором находится призрак,
содержит в себе жизненную силу призрака
.
У нас есть одна ловушка для приведений, которая может ловить столько призраков, сколько позволяет её заряд энергии
.
Мы можем расположить ловушку в любом секторе канализации.
Стоимость поимки одного призрака рассчитывается по формуле [жизненная энергия призрака
расстояние от призрака до ловушки], расстояние от призрака считается как разница между номерами секторов канализации. То есть, если ловушка стоит в нулевой ячейке, а призрак с жизненной энергией
стоит в третьей ячейке, то стоимость его поимки
.
Надо вычислить максимальное количество призраков, которое мы можем поймать в ловушку.
Ограничения: ,
,
,
,
Мои наблюдения и мысли:Скорее всего, нужно использовать префиксные суммы для решения задачи за оптимальное время. Завести цикл по всевозможным позициям и за константное время посчитать максимальное
количество призраков, которых можно поймать, используя посчитанные ранее префиксные суммы (возможно, нужны массивы для количества призраков от 0 до i-го сектора или их общая цена посчитанная по формуле из задачи при условии что ловушка сидит и в 0 и т.д.) Непонятно, каким образом считать количество призраков при заданной позиции ловушки и ограничении на общую цену сверху (
) за константное время. Возможно, наблюдения завели меня совсем не туда.
Спасибо всем за помощь!