Дана строка $$$s$$$ из маленьких английских букв. На одном из символов строки расположен курсор. Курсор можно перемещать следующей операцией: выбрать букву $$$c$$$ и направление (влево или вправо). В результате курсор передвигается на ближайшее вхождение буквы $$$c$$$ в выбранном направлении. Если в этом направлении нет буквы $$$c$$$, курсор остаётся на месте. Например, пусть $$$s = \mathtt{abaab}$$$ и курсор расположен на втором символе ($$$\mathtt{a[b]aab}$$$), тогда:
Обозначим $$$\mathrm{dist}(i, j)$$$ минимальное количество операций, за которое можно переместить курсор с $$$i$$$-го символа на $$$j$$$-й символ. Вычислите $$$\displaystyle \sum_{i = 1}^n \sum_{j = 1}^n \mathrm{dist}(i, j)$$$.
В единственной строке записана непустая строка $$$s$$$ не более чем из $$$10^5$$$ маленьких английских букв.
Выведите одно число $$$\displaystyle \sum_{i = 1}^n \sum_{j = 1}^n \mathrm{dist}(i, j)$$$.
abcde
20
abacaba
58
В первом примере $$$\mathrm{dist}(i, j) = 0$$$ для любой пары $$$i = j$$$, и $$$1$$$ для всех остальных пар.
Название |
---|