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.