14138: Парейдолія-Pareidolia-USACO2023OpenSilver
Парейдолія – це явище, при якому ваші очі схильні бачити у зображеннях знайомі візерунки, яких насправді не існує - наприклад, бачення обличчя у хмарі. Оскільки фермер Джон постійно знаходиться поряд із коровами, він часто бачить коров'ячі візерунки у повсякденних предметах. Наприклад, якщо він дивиться на рядок "bqessiyexbesszieb", очі фермера Джона ігнорують деякі літери та Все, що він бачить, це «bessiebessie».
Даний рядок \(s\), нехай \(B(s)\) є максимальною кількістю повторюваних копій слова «bessie», які можна отримати, видаляючи нуль або більше символів з \(s\). У наведеному вище прикладі \(B(\)"bqessiyexbesszieb"\() = 2\).
Обчислення \(B(s)\) – цікаве завдання, але фермеру Джону цікаво вирішення ще більш цікавої задачі: дано рядок довжини \(t\) не більше \(3\cdot 10^5\), що складаються лише із символів a-z, обчислити суму \(B(s)\) по всіх безперервних підрядках \(s\) рядка \(t\).
Формат вхідних даних
Вхід складається з непустого рядка довжини не більше \(3\cdot 10^5\), всі символи є малими англійськими літерами.
Формат вихідних даних
Виведіть однину — загальну кількість слів «bessie», яку можна зробити у всіх підрядках вхідного рядка.
Приклад вхідних даних
bessiebessie
Приклад вихідних даних
14
Дванадцять підрядків містять рівно 1 "bessie", а 1 рядок містить рівно 2 "bessie", так що всього \( 12 \ cdot 1 + 1 \ cdot 2 = 14 \).
Приклад вхідних даних
abcdefghssijebessie
Приклад вихідних даних
28
ОЦІНКА:
- Тести 3–5: довжина рядка не перевищує 5000.
- Тести 6–12: немає додаткових обмежень.
Коментарі