Большинство из нас знакомы с проблемой максимальной суммы субаритов. Я наткнулся на вариант этой проблемы, который просит программиста вывести максимум всех сумм субарейма по модулю некоторого числа M.
Наивный подход к решению этого варианта состоял бы в том, чтобы найти все возможные субарейные суммы (которые были бы порядка N ^ 2, где N - размер массива). Конечно, это недостаточно. Вопрос в том, как мы можем сделать лучше?
Пример: рассмотрим следующий массив:
6 6 11 15 12 1
Пусть M = 13. В этом случае подрамка 6 6 (или 12 или 6 6 11 15 или 11 15 12) даст максимальную сумму (= 12).