#include <bits/stdc++.h>
using namespace std;
bool fun(int mid, vector<int>v, int k){
int i=mid;
while(i<v.size()-1 && v[i]==v[i+1]){
i++;
}
if((i+1)%(k)==0){
//mid=i+k-1;
return true;
}
// mid=i;
return false;
}
int main()
{
vector<int>v={
10, 10, 20, 20, 20, 30, 30, 30
};
int n=v.size();
int k=3;
int l=0;
int h=n-1;
int ans=0;
while(l<=h){
int mid=(l+h)/2;
//cout<<l<<" "<<h<<" "<<mid<<endl;
if(fun(mid,v, k)==true){
l=mid+1;
}
else{
h=mid-1;
ans=v[mid];
}
}
cout<<" ans "<<ans<<endl;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmJvb2wgZnVuKGludCBtaWQsIHZlY3RvcjxpbnQ+diwgaW50IGspewogICAgaW50IGk9bWlkOwogICAgd2hpbGUoaTx2LnNpemUoKS0xICYmIHZbaV09PXZbaSsxXSl7CiAgICAgICAgaSsrOwogICAgfQogICAgCiAgIGlmKChpKzEpJShrKT09MCl7CiAgICAgICAvL21pZD1pK2stMTsKICAgICAgIHJldHVybiB0cnVlOwogICB9CiAgLy8gbWlkPWk7CiAgIHJldHVybiBmYWxzZTsKfQppbnQgbWFpbigpCnsKICAgIHZlY3RvcjxpbnQ+dj17CjEwLCAxMCwgMjAsIDIwLCAyMCwgMzAsIDMwLCAzMAp9OwogICAgaW50IG49di5zaXplKCk7CiAgICBpbnQgaz0zOwogICAgaW50IGw9MDsKICAgIGludCBoPW4tMTsKICAgIGludCBhbnM9MDsKICAgCiAgICB3aGlsZShsPD1oKXsKICAgICAgICBpbnQgbWlkPShsK2gpLzI7CiAgICAgICAvL2NvdXQ8PGw8PCIgIjw8aDw8IiAiPDxtaWQ8PGVuZGw7CiAgICAgICAgaWYoZnVuKG1pZCx2LCBrKT09dHJ1ZSl7CiAgICAgICAgICAgIGw9bWlkKzE7CiAgICAgICAgfQogICAgICAgIGVsc2V7CiAgICAgICAKICAgICAgICAgIGg9bWlkLTE7CiAgICAgICAgICBhbnM9dlttaWRdOwogICAgICAgIH0KICAgICAgICAKICAgIH0KICAgIGNvdXQ8PCIgYW5zICI8PGFuczw8ZW5kbDsKCn0K