AT_joi2013ho2.IOI 列車で行こう (Take the 'IOI' train)
普及+/提高
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
在 IOI 国,最近新建了一条铁路。运行在 IOI 国铁路上的列车由若干节车厢连接而成,车厢有两种类型,分别用 I 和 O 表示。每节车厢只能与不同类型的车厢相连。此外,由于需要设置驾驶室,列车两端的车厢必须是 I 类型。列车可以用表示车厢类型的字符串依次连接而成,列车的长度即为该字符串的长度。例如,依次连接 IOIOI 可以组成一列长度为 5 的列车,单独的 I 车厢也可以视为长度为 1 的列车。像 OIOI 或 IOOI 这样的顺序无法组成有效的列车。
有若干车厢分别存放在两个车库中。每个车库中的车厢按一列顺序排列。组装列车时,可以从车库中取出车厢,在车库前依次连接。每次只能从每个车库最靠近入口的那节车厢取出,但可以自由选择从哪个车库取车厢的顺序。
在组装列车之前,可以任意多地将车厢从车库取出,放到备用轨道上。被移到备用轨道上的车厢之后不能再用于组装列车。此外,一旦开始组装列车,在组装完成之前,不能再将车厢从车库移到备用轨道。
组装列车时,不需要用完所有车库中的车厢。也就是说,组装完成后,车库中可以剩下未使用的车厢。
由于 IOI 国乘坐铁路的人非常多,因此希望组装出尽可能长的列车。

图为正在组装列车的过程,此时不能再将车厢移到备用轨道。该图对应输入输出样例 1。
输入格式
从标准输入读取以下数据:
- 第 1 行包含两个用空格分隔的整数 M, N。
- 第 2 行包含字符串 S。
- 第 3 行包含字符串 T。
输出格式
输出一个整数,表示能够组装出的列车的最大长度。如果无法组装出任何列车,则输出 0。
输入输出样例
输入#1
5 5 OIOOI OOIOI
输出#1
7
输入#2
5 9 IIIII IIIIIIIII
输出#2
1
说明/提示
任务
给定存放在车库中的车厢信息,编写程序求出能够组装出的列车的最大长度。每个车库中的车厢序列由仅包含两种字符 I 和 O 的字符串表示,两个车库的信息分别为长度为 M 的字符串 S 和长度为 N 的字符串 T。每个字符表示一节车厢,字符类型与车厢类型相同。字符串的第 1 个字符表示最靠近车库入口的车厢,末尾字符表示最靠近车库深处的车厢。
限制
1≤M≤2000,字符串 S 的长度。
1≤N≤2000,字符串 T 的长度。
评分标准
在评分数据中,20% 的数据满足 M≤10,N≤10。
在评分数据中,50% 的数据满足 M≤50,N≤50。
样例解释 1
将由 S 表示的车库称为车库 S,由 T 表示的车库称为车库 T。例如,先从车库 S 取出最前面的 1 节车厢,从车库 T 取出最前面的 2 节车厢放到备用轨道后,再按车库 S、车库 S、车库 T、车库 S、车库 S、车库 T、车库 T 的顺序取车厢,可以组装出长度为 7 的列车 IOIOIOI。
也可以先从车库 S 取出最前面的 1 节车厢,从车库 T 取出最前面的 2 节车厢放到备用轨道后,再按车库 T、车库 T、车库 S、车库 S、车库 T、车库 S、车库 S 的顺序取车厢,同样可以组装出长度为 7 的列车。无法组装出更长的列车,因此输出 7。
样例解释 2
需要注意,单节车厢 I 也满足列车的条件。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?