В данной задаче вам предстоит окунуться в увлекательный мир строк!
Пусть имеется алфавит, состоящий из строчных латинских букв. Назовем номером буквы ее порядковый номер в алфавите и будем обозначать это как $$$num(a)$$$. Таким образом, $$$num($$$a$$$) = 1$$$, $$$num($$$b$$$) = 2$$$, а $$$num($$$z$$$) = 26$$$.
Пусть у нас имеется две строки $$$s$$$ и $$$t$$$ одинаковой длины $$$n$$$: $$$|s| = |t| = n$$$. Будем обозначать $$$i$$$-й символ строки $$$s$$$ как $$$s_i$$$.
Введем функцию $$$f(s, t)$$$, которая вычисляется по следующей формуле: $$$$$$f(s, t) = \sum\limits_{i=1}^{n} |num(s_i) - num(t_i)|$$$$$$
Дана строка $$$s$$$ длины $$$n$$$. Обозначим подстроку строки $$$s$$$, начинающуюся с $$$i$$$-го символа строки и заканчивающуюся $$$j$$$-м символом строки, как $$$s[i \ldots j]$$$.
От вас требуется посчитать следующую величину: зафиксируем некоторую длину подстроки $$$k = 1 \ldots n$$$. Рассмотрим все пары подстрок строки $$$s$$$, имеющих длину $$$k$$$. Нужно вычислить сумму значений функции $$$f$$$ от каждой пары подстрок.
Формально, нужно вычислить следующую сумму:
$$$$$$\sum\limits_{k=1}^{n} \sum\limits_{1 \leq i, j \leq n - k + 1} f(s[i \ldots i+k-1], s[j \ldots j + k - 1])$$$$$$
В первой строке входных данных записано целое число $$$n$$$ ($$$1 \leq n \leq 500\,000$$$).
Во второй строке входных данных записана строка $$$s$$$ длины $$$n$$$, состоящая из строчных латинских букв.
Выведите единственное число — остаток от деления ответа на число $$$998\,244\,353$$$.
3 abb
6
4 bcaa
36
6 abcdef
252
Рассмотрим ответ для первого примера.
В данной строке имеется три подстроки длины $$$1$$$: a, b и b. В качестве примера, $$$f($$$a, a$$$) = 0$$$, $$$f($$$a, b$$$) = 1$$$. Тогда сумма значений функции для всех пар строк длины $$$1$$$ будет равна: $$$0 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 0 = 4$$$.
Теперь рассмотрим все подстроки длины $$$2$$$: ab и bb. Сумма значений равна $$$0 + 1 + 0 + 1 = 2$$$.
Теперь рассмотрим подстроки длины $$$3$$$: abb. Сумма равна $$$0$$$.
Тогда ответ равен $$$4 + 2 + 0 = 6$$$.
| Название |
|---|


