Ctrl K

Срез отсортированных сумм отрезков

Средняя
Дан массив values из n положительных чисел. Выпишите суммы всех его непустых непрерывных отрезков — их n·(n+1)/2 — и отсортируйте по неубыванию. Верните сумму элементов этого отсортированного списка с позиции first по позицию last включительно (позиции считаются с 1). Ответ может быть большим, поэтому верните его по модулю 10⁹ + 7.
Пример 1
values=[3, 1, 2], n=3, first=2, last=4 → 8

Суммы отрезков: 3, 4, 6, 1, 3, 2. После сортировки — [1, 2, 3, 3, 4, 6]. Со 2-й по 4-ю: 2 + 3 + 3 = 8.

Пример 2
values=[5, 5], n=2, first=1, last=3 → 20

Суммы [5, 5, 10], берём все три: 20.

Ограничения
  • n == values.length
  • 1 ≤ n ≤ 1000
  • 1 ≤ values[i] ≤ 100
  • 1 ≤ first ≤ last ≤ n·(n+1)/2
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиТройки с суммой меньше порога СредняяТепло в каждый домик СредняяПары с заданной разницей СредняяТройки палочек для треугольника Средняяk ближайших значений Средняя
загружаем Python…
Вход
values=[3, 1, 2], n=3, first=2, last=4
Ожидается
8

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