テキトーなメモ帳

テキトーなメモ帳

AOJ:0538 IOIOI

dequeを使います。(ランダムアクセスできるから)

#define _USE_MATH_DEFINES
#define INF 100000000
#include <iostream>
#include <sstream>
#include <cmath>
#include <cstdlib>
#include <algorithm>
#include <queue>
#include <stack>
#include <limits>
#include <map>
#include <string>
#include <cstring>
#include <set>
#include <deque>
#include <bitset>
#include <list>

using namespace std;

typedef long long ll;
typedef pair <int,int> P;

static const double EPS = 1e-8;


int tx[] = {-1,0,1,0};
int ty[] = {0,1,0,-1};

char buf[1000000];

int main(){
	int m,n;

	while(~scanf("%d",&n)){
		if(n==0) break;
		scanf("%d",&m);
		scanf("%s",buf);

		deque<char> que;
		int tmp = 0;
		int res = 0;
		for(int i=0;i<m;i++){
			que.push_back(buf[i]);
			
			if(que.size()==3){
				char f = que[0];
				char m = que[1];
				char r = que[2];
				
				if(f=='I' && m == 'O' && r == 'I'){
					tmp++;
					if(tmp>=n) res++;
					que.pop_front();
					que.pop_front();
				}
				else{
					tmp=0;
					que.pop_front();
				}
			}

		}
		printf("%d\n",res);
	}
}