在算法竞赛业界,以下是鼎鼎有名的两个比赛:
NOI (National Olympiad in Informatics) 指全国青少年信息学奥林匹克竞赛; IOI (International Olympiad in Informatics) 指国际信息学奥林匹克竞赛。
前者代表了全国的较高水平,后者则为全球范围强者的竞争。
现在有一个字符串,GhostCai想考考你,最多能划分出多少个内容为NOI或者IOI的子序列?
注:把字符串s中的一些(可以是0个)字符删去,得到新字符串t,我们说t是s的子序列。比如对于BJTUACM,BJTU和BJACM都是它的子序列,而BJUT和BUPT不是。
第一行为一个字符串 $s\ (1\le |s|\le 10^6)$ ,保证 $s$ 中只出现大写字母。
一个整数,代表最多能选出的不重叠的NOI或IOI子序列个数。
选IOI,则剩下NOKI;
再选NOI,则剩下K;
可以证明,最多只能选2个内容为NOI或IOI的字符串。