values и список отрезков ranges, где ranges[i] = [l, r] — индексы с l по r включительно (нумерация с нуля).
Элементы values можно переставить в любом порядке. После перестановки для каждого отрезка считается сумма элементов на его позициях, а все эти суммы складываются. Верните наибольший возможный итог по модулю 10⁹ + 7.values=[1, 5, 2], ranges=[[0, 1], [1, 2]] → 13
Позиция 1 входит в оба отрезка — ставим туда 5. Например, [2, 5, 1]: (2 + 5) + (5 + 1) = 13.
values=[4, 0, 7, 3], ranges=[[2, 2], [0, 3], [2, 3]] → 32
Позиция 2 покрыта трижды, позиция 3 — дважды, остальные — по разу. 7 · 3 + 4 · 2 + 3 + 0 = 32.
values=[9], ranges=[[0, 0], [0, 0]] → 18
Один и тот же отрезок спрашивают дважды: 9 + 9 = 18.
ranges[i] = [l, r], 0 ≤ l ≤ r < len(values)values=[1, 5, 2], ranges=[[0, 1], [1, 2]]
13
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 92 теста на сервере, включая скрытые.