F. Сделай палиндром
ограничение по времени на тест
5 секунд
ограничение по памяти на тест
512 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Задан массив $$$a$$$, состоящий из $$$n$$$ целых чисел.

Скажем, что результат функции $$$f(b)$$$ — минимальное количество операций, чтобы сделать массив $$$b$$$ палиндромом. Операции, которые вы можете выполнять — следующие:

  • выбрать два соседних элемента $$$b_i$$$ и $$$b_{i+1}$$$, удалить их и заменить одним элементом, равным $$$(b_i + b_{i + 1})$$$;
  • или выбрать элемент $$$b_i > 1$$$, удалить его и заменить двумя положительными целыми числами $$$x$$$ и $$$y$$$ ($$$x > 0$$$ и $$$y > 0$$$) такими, что $$$x + y = b_i$$$.

Например, из массива $$$b=[2, 1, 3]$$$ за одну операцию можно получить следующие массивы: $$$[1, 1, 1, 3]$$$, $$$[2, 1, 1, 2]$$$, $$$[3, 3]$$$, $$$[2, 4]$$$ или $$$[2, 1, 2, 1]$$$.

Посчитайте $$$\displaystyle \left(\sum_{1 \le l \le r \le n}{f(a[l..r])}\right)$$$, где $$$a[l..r]$$$ — подотрезок массива $$$a$$$ с $$$l$$$-й по $$$r$$$-ю позиции включительно. Другими словами — сумму значений функции $$$f$$$ для всех подотрезков массива $$$a$$$.

Входные данные

Первая строка содержит одно целое число $$$t$$$ ($$$1 \le t \le 1000$$$) — количество наборов входных данных.

Первая строка каждого набора содержит одно целое число $$$n$$$ ($$$1 \le n \le 2000$$$).

Вторая строка содержит $$$n$$$ целых чисел $$$a_1, a_2, \dots, a_n$$$ ($$$1 \le a_i \le 10^5$$$).

Дополнительные ограничения на входные данные: сумма $$$n$$$ по всем наборам входных данных не превосходит $$$2000$$$.

Выходные данные

Для каждого набора выведите одно целое число — сумму значений функции $$$f$$$ для всех подотрезков массива $$$a$$$.

Пример
Входные данные
4
3
2 1 3
4
1 1 1 1
5
4 2 3 1 5
4
1 2 1 2
Выходные данные
3
0
14
5