Ctrl K

Сумма квадратов разнообразия

Сложная
Дан массив целых чисел values. Разнообразием непустого отрезка (подряд идущих элементов) назовём количество различных значений в нём. Для каждого отрезка массива возведите его разнообразие в квадрат и сложите все полученные числа. Ответ может быть очень большим, поэтому верните его по модулю 10⁹ + 7.
Пример 1
values=[3, 3, 5] → 12

Отрезки [3], [3], [5] и [3, 3] содержат по одному различному значению, а [3, 5] и [3, 3, 5] — по два: 1 + 1 + 1 + 1 + 4 + 4 = 12.

Пример 2
values=[1, 2, 3] → 20

Три отрезка длины 1 дают по 1, два отрезка длины 2 — по 4, весь массив — 9: всего 20.

Ограничения
  • 1 ≤ len(values) ≤ 10⁵
  • 1 ≤ values[i] ≤ 10⁵
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиРастущая цепочка мелкими шагами СложнаяКрутая подпоследовательность с наибольшей суммой СложнаяСколько самых длинных возрастающих СредняяТройки по нарастающей или по убывающей СредняяКонтур городской застройки Сложная
загружаем Python…
Вход
values=[3, 3, 5]
Ожидается
12

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