//(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;
}
Ly8oYylUZXJtaW5hdG9yCiNpbmNsdWRlIDxpb3N0cmVhbT4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCgplbnVtIHN0YXRlIHsKCVNfT0ZGU0VUID0gMCwKCVNfQ09VTlQgID0gMQp9OwoKCgppbnQgbWFpbih2b2lkKXsKCWNvbnN0IGludCBOID0gMTA7CglpbnQgYXJyW05dICA9IHsKCQkxLCAwLCAxLCAxLCAxLCAxLCAwLCAxLCAwLCAwCgl9OwoKCWludCB2YWxzWzJdID0gezB9OwoJaW50IG1zZXFbMl0gPSB7MH07CgoJaW50IHByZXYgPSBhcnJbMF07CglpbnQgaSAgICA9IDA7CglkbyB7CgoJCWlmKChpID09IE4pIHx8IChwcmV2ICE9IGFycltpXSkpewoJCQlpZih2YWxzW3ByZXZdID4gbXNlcVtTX0NPVU5UXSl7CgkJCQltc2VxW1NfT0ZGU0VUXSA9IGkgLSB2YWxzW3ByZXZdOwoJCQkJbXNlcVtTX0NPVU5UXSAgPSB2YWxzW3ByZXZdOwoJCQl9CgkJCWlmKGkgPT0gTikKCQkJCWJyZWFrOwoJCQl2YWxzWzBdID0gdmFsc1sxXSA9IDA7CgkJfQoKCQkrK3ZhbHNbYXJyW2ldXTsKCQlwcmV2ID0gYXJyW2ldOwoKCX0gd2hpbGUoKytpIDw9IE4pOwoKCWNvdXQgPDwgInZhbHVlOiAiIDw8IGFyclttc2VxW1NfT0ZGU0VUXV0gPDwgZW5kbDsKCWNvdXQgPDwgImluZGV4OiAiIDw8IG1zZXFbU19PRkZTRVRdIDw8IGVuZGw7Cgljb3V0IDw8ICJjb3VudDogIiA8PCBtc2VxW1NfQ09VTlRdICA8PCBlbmRsOwoJcmV0dXJuIDA7Cn0K