14138: Парейдолія-Pareidolia-USACO2023OpenSilver


Відправити розв'язок

Бали: 100 (partial)
Time limit: 4.0s
Memory limit: 500M

Authors:
Problem type
Allowed languages
Brain****, C, C++, Java, Pascal, Python, v8js

Парейдолія – це явище, при якому ваші очі схильні бачити у зображеннях знайомі візерунки, яких насправді не існує - наприклад, бачення обличчя у хмарі. Оскільки фермер Джон постійно знаходиться поряд із коровами, він часто бачить коров'ячі візерунки у повсякденних предметах. Наприклад, якщо він дивиться на рядок "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: немає додаткових обмежень.

Коментарі

Ще немає коментарів.