JOIOI塔是一种单人游戏。
这个游戏要用到一些写有J,O,I中任一文字的圆盘。这些圆盘的直径互不相同。游戏开始时,这些圆盘按照直径大的在下面的规则堆叠。你需要用这些圆盘做尽量多的迷你JOIOI塔。迷你JOIOI塔由3个圆盘构成,从直径较小的圆盘开始分别为J,O,I或分别为I,O,I。不过,每个圆盘最多只能使用一次。
任务
给出长为N的字符串S,表示直径从小到大的圆盘上的文字。请编写程序求出使用这些圆盘能够做出的迷你JOIOI塔个数的最大值。
输入描述:
第一行为一个整数$N$,表示字符串$S$的长度。第二行是一个字符串$S$。
输出描述:
输出一行一个整数:表示能够做出的迷你JOIOI塔数量的最大值。
示例1
说明
JOIIOI分别含子串JOI和子串IOI各一个,故可以做出2个迷你JOIOI塔。
示例2
说明
虽然JOIOI也分别含子串JOI和子串IOI各一个,但每个字符不能被使用两次或以上。
备注:
对于所有数据,

。
CC-BY-SA,感谢LOJ分享,译文来自 https://loj.ac/problem/2764