単純に回したのでは時間切れとなったので
考え方を変更した。
P1ならIOI P2ならIOIOI
となるはずなので、IOIの連続出現回数をカウントしていく。
P1なら1回、P2なら2回連続で出現したらresをインクリメント
/*****************************
* 2012/07/15 *
* AOJ_Volume5_0538 *
* IOIOI *
* crane *
******************************/
#include<iostream>
#include<string>
using namespace std;
int main(){
int n;
while(cin >> n, n){
int m;
cin >> m;
string s;
cin >> s;
int count=0, res= 0;
for(int i=0; i<m;){
if(s.substr(i, 3) == "IOI"){
count++;
if(n <= count) res++;
}else {
count = 0;
}
if(count == 0) i++;
else i+=2;
}
cout << res << endl;
}
return 0;
}
0 件のコメント:
コメントを投稿