Потенциал Бибопа
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Космический корабль Бибоп снова остался без денег, и команда охотников за головами берётся за любую работу. На этот раз Спайк и Джет получили странный заказ от технической станции на орбите Ганимеда.

На станции хранится энергетическая строка $$$s$$$, состоящая из строчных латинских букв. Строка разбивается на максимальные блоки одинаковых подряд идущих символов. Если длины этих блоков равны $$$$$$ l_1, l_2, \ldots, l_m \text{,} $$$$$$ то потенциалом строки называется величина $$$$$$ l_1^2 + l_2^2 + \ldots + l_m^2 \text{.} $$$$$$

Например, строка «aaaabbaa» разбивается на блоки длины $$$4$$$, $$$2$$$ и $$$2$$$, поэтому её потенциал равен $$$4^2 + 2^2 + 2^2 = 24$$$.

Чем меньше потенциал строки, тем более безопасно с ней работать. Фэй узнала, что перед выполнением заказа можно аккуратно переместить один символ внутри строки, то есть можно

  1. выбрать позицию $$$i$$$;
  2. удалить символ $$$s_i$$$ из строки, получив строку $$$s' = s_1 s_2 \ldots s_{i-1} s_{i+1} \ldots s_{|s|}$$$;
  3. и затем вставить его в любое место получившейся строки $$$s'$$$: в начало, в конец или между любыми двумя соседними символами.

Всего команде предстоит обработать $$$t$$$ заказов, для каждого заказа — своя строка $$$s$$$. Для каждой строки требуется выполнить не более одной такой операции так, чтобы ее потенциал стал минимально возможным.

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

Каждый тест состоит из нескольких наборов входных данных. В первой строке дано целое число $$$t$$$ — количество наборов входных данных ($$$1\le t \le 10^5$$$). Далее следуют описания наборов входных данных.

Каждый набор входных данных состоит из одной строки $$$s$$$, состоящей из строчных латинских букв ($$$1\le |s| \le 2\cdot 10^5$$$).

Гарантируется, что суммарная длина всех строк во всех наборах входных данных одного теста не превышает $$$2 \cdot 10^5$$$.

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

Для каждого набора входных данных выведите на отдельной строке минимально возможный потенциал строки, который можно получить, выполнив не более одной описанной в условии операции.

Система оценки

Баллы за подзадачи начисляются только в случае, если все тесты соответствующей подзадачи и необходимых подзадач успешно пройдены.

Ниже за $$$L$$$ обозначена сумма длин строк по всем наборам входных данных в одном тесте.

ПодзадачаБаллыДоп. ограничения Необходимые подзадачи Информация о проверке
0–примеры из условияполная
110$$$L \le 200$$$0первая ошибка
225$$$L \le 2000$$$0, 1первая ошибка
320 в каждой строке не более двух различных буквпервая ошибка
420 каждый символ от 'a' до 'z' образует не более одного блока в каждой строке первая ошибка
525нет0 – 4первая ошибка

Пример

Входные данные
15
aaa
aab
abb
abba
aaab
abbb
aabb
abab
aaaaab
baaaaa
abcabc
abacab
aaaabbaa
aaabbaaa
aaabbbccc
Выходные данные
9
3
3
4
6
6
4
4
14
14
6
6
14
16
19

Примечание

В строка «aaa» состоит из одного блока длины $$$3$$$, поэтому её потенциал равен $$$3^2 = 9$$$, и изменить его не получится.

Строка «aab» имеет потенциал $$$5$$$, после одной перестановки символа можно получить «aba» с потенциалом $$$3$$$.

Для строки «aaaabbaa» оптимально переставить любую из 'b', чтобы получить «aabaabaa» с потенциалом $$$4 + 1 + 4 + 1 + 4 = 14$$$.