国際情報オリンピック日本代表プログラミングコンテスト (Welcome to IJPC)
题意翻译
## AT49 A-国际信息奥林匹克日本代表程序设计大赛
时间限制:1s/内存限制:64MB
## 题目背景:
终于等到了“国际信息奥林匹克日本代表程序设计大赛”(IJPC:IOIer Japan Programmining Contest)的召开。这是2010年在加拿大、2011年在泰国举办的国际信息奥林匹克运动会(IOI)上作为日本代表出场的共计5人制作问题的程序设计比赛,与IOI的形式类似,5小时解决3道问题。
在对IJPC的参加者表示感谢的同时,为使IJPC气氛高涨,需要巨大的横幅。虽然希望尽可能地让大会引人注目,但是如果在制作横幅上花太多时间的话,就要削减重要的大会问题的准备时间了。也就是说,希望能在省力的同时制作大的横幅。
顺便说一下,手头有一个巨大的横幅。这个垂幕非常长,原本就写着字符串。这样下去,当然不能作为IJPC用的垂幕来使用,不过,稍微修正一下,能不能用这个做IJPC用呢?
如果原本写的文字列中包含了“IJPC”这样的文字列的话会很开心,但是到底是不是不太方便呢。虽然有必要改写一定程度的文字,但是重写文字的工作垂幕很大,需要很长的时间。那么,在这里轮到节目的出场了。寻求尽可能少的修改字符次数就能使用这个垂幕的方法。
## 题目描述:
有由英文大写字母构成的N个文字的字符串S。重复将S的某个位置的字符改写成其他字符的操作,希望S的部分字符串中出现“IJPC”这4个字符。将从这里的字符串中删除0个字符以上的任意字符而得到的字符串称为原始字符串的子字符串。
## 提示:
可以写一个函数 replace(N,S),将S的部分字符串中“IJPC”出现所需的最小的改写次数作为返回值返回。
## 输入:
两行,一行是N,另一行是S。
## 输出:
一行,需要改动的字符数。
## 输入输出样例:
### 样例1:
~~~
8
AMJAPLJ
~~~
### 样例2:
~~~
28
I O I ERJAPANPROGRAMINGCONTEST。
~~~
## 样例说明:
### 样例一:
在这种情况下,通过将S的第7个字符或第8个字符改写为字符“C”,“IJPC”可以出现在S的子字符串中。因此,replace(N,S)需要返回1。
### 样例二:
在这种情况下,S原本作为部分字符串包含“IJPC”,所以不需要进行改写。因此,replace(N,S)需要返回0。
## 说明:
对于100%的数据4<=N<=100000
题目描述
[problemUrl]: https://atcoder.jp/contests/ijpc2012pr/tasks/ijpc_ijpc