QOJ.ac

QOJ

Time Limit: 1 s Memory Limit: 128 MB Total points: 100

#23817. JJOOII

Statistics

Умова задачі

Тренуючись у програмуванні перед фінальним етапом JOI, ви помітили, що у відбірковому етапі JOI цього року були лише числові задачі й жодної задачі на рядки. Тому ви вирішили таємно покращити свої навички у рядкових задачах, щоб випередити суперників. Переглядаючи минулі задачі JOI, ви зрозуміли, що варто звикнути до рядків, які складаються з $3$ видів символів: J, O та I. Розгляньмо такі рядки. Ви придумали задачу «Дайте відповідь, чи містить заданий рядок JOI як підрядок», яку одразу ж розв'язали. Бажаючи розв'язати задачу вищого рівня, ви склали наступну задачу.

Рядок $t$ називається підрядком рядка $s$, якщо $s$ можна отримати, дописавши деяку кількість символів ($0$ символів також дозволяється) на початок і в кінець рядка $t$. Наприклад, JJOOII є підрядком OJJOOIIOJOI. З іншого боку, JOI не є підрядком JOOI.

Крім того, для цілого числа $k$, більшого або рівного $0$, JOI-рядком рівня $k$ називається рядок, утворений записом поспіль $k$ символів J, $k$ символів O та $k$ символів I у цьому порядку. Наприклад, JJOOII — це JOI-рядок рівня $2$.

Ми хочемо знайти рядок із максимальним рівнем серед усіх JOI-рядків, які є підрядками заданого рядка.

Завдання

Задано рядок $S$ довжини $N$, що складається з $3$ видів символів J, O та I. Напишіть програму, яка знаходить максимальне значення $k$, за якого JOI-рядок рівня $k$ є підрядком $S$.

Обмеження

  • $1 \le N \le 1000000 \ (= 10^6)$: довжина рядка $S$.

Вхідні дані

Зчитайте такі дані зі стандартного потоку введення.

  • У $1$-му рядку записано рядок $S$, що складається з $3$ видів символів J, O та I.

Вихідні дані

Виведіть у стандартний потік виведення в $1$ рядку ціле число — максимальне значення $k$, за якого JOI-рядок рівня $k$ є підрядком $S$.

Підзадачі

  • Для $20\%$ балів у тестових даних виконується $N \le 100$.

Приклад 1

Введення

OJJOOIIOJOI

Виведення

2

OJJOOIIOJOI містить JJOOII, тобто JOI-рядок рівня $2$, як підрядок, і не містить жодного JOI-рядка рівня $3$ або вище як підрядка.

Приклад 2

Введення

IJJIIJJJ

Виведення

0

JOI-рядок рівня $0$ — це рядок довжини $0$.

Приклад 3

Введення

JOIJOIJOIJOIJOI

Виведення

1

Приклад 4

Введення

OOJJJJJJOOOOIIIII

Виведення

4

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.