AOJ 0571 - JJOOII

#include<iostream>
#include<vector>

struct JOI{//cがn個ある
	char c;
	int n;
};

std::vector<JOI> jv;
std::string str;

void kako(){
	char c = str[0];
	int n = 1;
	int str_length = str.size();
	for(int i=1;i<str_length;i++){
		if(c != str[i]){
			jv.push_back({c, n});
			c = str[i];
			n = 1;
		}else{
			n++;
		}
	}
	jv.push_back({c, n});
}

int main(){
	std::cin >> str;
	kako();

	int jv_size = jv.size(), k = 0;
	for(int l=0;l+2<jv_size;l++){
		JOI j = jv[l], o = jv[l+1], i = jv[l+2];
		if(j.c == 'J' && o.c == 'O' && i.c == 'I' && j.n >= o.n && i.n >= o.n){
			k = std::max(k, o.n);
		}
	}

	std::cout << k << std::endl;
}