QOJ.ac

QOJ

시간 제한: 1 s 메모리 제한: 256 MB 총점: 100

#23829. ניסע ברכבת IOI (Take the ‘IOI’ train)

통계

תיאור הבעיה

בממלכת IOI הונחה לאחרונה מסילת רכבת חדשה. רכבת הנוסעת על מסילת הרכבת של ממלכת IOI מורכבת ממספר קרונות המחוברים זה לזה, וישנם $2$ סוגים של קרונות: I ו-O. ניתן לחבר קרון אך ורק לקרון מסוג שונה. בנוסף, מכיוון שיש להתקין תאי נהג בשני קצות הרכבת, הקרונות בשני הקצוות של הרכבת חייבים להיות מסוג I. רכבת מיוצגת על ידי מחרוזת הנוצרת משירשור התווים המייצגים את סוגי הקרונות שלה לפי הסדר, ואורך הרכבת מוגדר כאורך המחרוזת הזו. לדוגמה, חיבור קרונות בסדר IOIOI יוצר רכבת באורך $5$, וקרון בודד I בפני עצמו הוא רכבת באורך $1$. לא ניתן להרכיב רכבת על ידי סידור קרונות בסדר כגון OIOI או IOOI.

מספר קרונות מאוחסנים ב-$2$ מחסני קרונות (דיפו). בתוך כל מחסן, הקרונות מסודרים בשורה אחת. כאשר מרכיבים רכבת, מוציאים קרונות מהמחסנים ומחברים אותם זה לזה לפני המחסנים. הקרון היחיד שניתן להוציא ממחסן הוא הקרון הקרוב ביותר לכניסה של אותו מחסן, אך הסדר שבו בוחרים מאיזה מבין שני המחסנים להוציא קרון הוא חופשי.

לפני שמתחילים להרכיב רכבת, ניתן להוציא כמה קרונות שרוצים מהמחסנים ולהעביר אותם למסילת המתנה נפרדת. קרונות שהועברו למסילת ההמתנה לא יוכלו לשמש עוד להרכבת הרכבת. כמו כן, ברגע שהחלה הרכבת הרכבת, לא ניתן להעביר קרונות מהמחסנים למסילת ההמתנה עד שהרכבת הרכבת מסתיימת.

כאשר מרכיבים רכבת, אין צורך להשתמש בכל הקרונות שבמחסנים. כלומר, לאחר סיום הרכבת הרכבת, מותר שיישארו במחסנים קרונות שלא נעשה בהם שימוש.

מכיוון שצפוי שאנשים רבים מאוד ייסעו ברכבת בממלכת IOI, אנו רוצים להרכיב רכבת ארוכה ככל האפשר.

איור: בעיצומה של הרכבת רכבת (למעלה: מסילת המתנה; למטה משמאל: רכבת בהרכבה; מימין: מחסן S ומחסן T); בשלב זה לא ניתן להעביר קרונות מהמחסנים למסילת ההמתנה. איור זה מתאים לדוגמה 1.

משימה

בהינתן המידע על הקרונות המאוחסנים במחסנים, כתבו תוכנית שתמצא את האורך המרבי האפשרי של רכבת שניתן להרכיב. שורת הקרונות המאוחסנת בכל מחסן מיוצגת על ידי מחרוזת המורכבת רק מ-$2$ סוגי התווים I ו-O, והמידע על $2$ המחסנים ניתן כמחרוזת $S$ באורך $M$ וכמחרוזת $T$ באורך $N$, בהתאמה. כל תו מייצג קרון $1$, והתו זהה לסוג הקרון. התו ה-$1$ של המחרוזת מייצג את הקרון הקרוב ביותר לכניסה למחסן, והתו האחרון מייצג את הקרון הנמצא בעומק המחסן.

מגבלות

  • $1 \le M \le 2\,000$: אורך המחרוזת $S$.
  • $1 \le N \le 2\,000$: אורך המחרוזת $T$.

קלט

קראו את הנתונים הבאים מהקלט הסטנדרטי.

  • בשורה ה-$1$ כתובים $M, N$ מופרדים ברווח.
  • בשורה ה-$2$ כתובה המחרוזת $S$.
  • בשורה ה-$3$ כתובה המחרוזת $T$.

פלט

הדפיסו לפלט הסטנדרטי בשורה $1$ מספר שלם המייצג את האורך המרבי של רכבת שניתן להרכיב. אם לא ניתן להרכיב אפילו רכבת $1$, הדפיסו 0.

קריטריוני ניקוד

  • עבור $20\%$ מהניקוד הכולל, מתקיים $M \le 10$, $N \le 10$.
  • עבור $50\%$ מהניקוד הכולל, מתקיים $M \le 50$, $N \le 50$.

דוגמה 1

5 5
OIOOI
OOIOI
7

נסמן את המחסן המיוצג על ידי $S$ בתור מחסן S, ואת המחסן המיוצג על ידי $T$ בתור מחסן T. אזי, לדוגמה, לאחר שמוציאים את הקרון ה-$1$ ממחסן S ואת $2$ הקרונות הראשונים ממחסן T אל מסילת ההמתנה, אם נוציא קרונות בסדר: מחסן S, מחסן S, מחסן T, מחסן S, מחסן S, מחסן T, מחסן T, נוכל להרכיב את הרכבת IOIOIOI באורך $7$.

בנוסף, לאחר שמוציאים את הקרון ה-$1$ ממחסן S ואת $2$ הקרונות הראשונים ממחסן T אל מסילת ההמתנה, ניתן להרכיב רכבת באורך $7$ גם על ידי הוצאת קרונות בסדר: מחסן T, מחסן T, מחסן S, מחסן S, מחסן T, מחסן S, מחסן S. מכיוון שלא ניתן להרכיב רכבת ארוכה יותר מזו, מדפיסים $7$.

דוגמה 2

5 9
IIIII
IIIIIIIII
1

שימו לב שגם רכבת I המורכבת מקרון $1$ בלבד מקיימת את התנאים של רכבת.

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.