Codeforces Round 869 (Div. 1) |
---|
Закончено |
Дана строка $$$s$$$. Две непустые подстроки $$$(a, b)$$$ называются запутанными, если существует (возможно, пустая) связующая строка $$$c$$$ такая, что:
Иными словами, $$$a$$$ и $$$b$$$ встречаются в $$$s$$$ только как подстроки $$$acb$$$. Вычислите общее количество запутанных пар подстрок строки $$$s$$$.
Строка $$$a$$$ является подстрокой $$$b$$$, если $$$a$$$ может быть получена из $$$b$$$ удалением нескольких (возможно, ни одного или всех) символов из начала и нескольких (возможно, ни одного или всех) символов из конца.
Первая и единственная строка содержит строку $$$s$$$ из строчных букв английского алфавита ($$$1 \leq |s| \leq 10^5$$$) — строку, для которой вам нужно посчитать пары запутанных подстрок.
Выведите одно целое число, количество запутанных пар подстрок строки $$$s$$$.
abba
1
abacaba
0
abcabcabcabc
5
adamant
82
В первом примере единственная запутанная пара — (ab,ba). Для этой пары соответствующая связующая строка $$$c$$$ пуста, так как они встречаются только как подстроки всей строки abba, которая не имеет никаких символов между ab и ba.
Во втором примере запутанных пар нет.
В третьем примере запутанные пары: (a,b), (b,c), (a,c), (a,bc) и (ab,c). Для большинства пар соответствующая связующая строка $$$c$$$ пуста, за исключением пары (a,c), для которой связующая строка $$$c$$$ равна b, так как a и c встречаются только как подстроки строки abc.
Название |
---|