//(c)Terminator
#include <iostream>
using namespace std;


enum state {
	S_OFFSET = 0,
	S_COUNT  = 1
};



int main(void){
	const int N = 10;
	int arr[N]  = {
		1, 0, 1, 1, 1, 1, 0, 1, 0, 0
	};

	int vals[2] = {0};
	int mseq[2] = {0};

	int prev = arr[0];
	int i    = 0;
	do {

		if((i == N) || (prev != arr[i])){
			if(vals[prev] > mseq[S_COUNT]){
				mseq[S_OFFSET] = i - vals[prev];
				mseq[S_COUNT]  = vals[prev];
			}
			if(i == N)
				break;
			vals[0] = vals[1] = 0;
		}

		++vals[arr[i]];
		prev = arr[i];

	} while(++i <= N);

	cout << "value: " << arr[mseq[S_OFFSET]] << endl;
	cout << "index: " << mseq[S_OFFSET] << endl;
	cout << "count: " << mseq[S_COUNT]  << endl;
	return 0;
}
