#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int bs(vector<int> a)
{
int l =0, r = a.size()-1;
while(l<=r)
{
int mid = l + (r-l)/2; // Mid guaranteed to be in range
if(a[mid-1]>a[mid]) return a[mid];
if(a[mid]>a[l])
{
l=mid+1 ; continue;
}
else
{
r = mid-1 ; //Mid has been checked
}
}
}
int main()
{
vector<int> a = {1,2,3,5,6,7,8,9,10};
rotate(a.begin(),a.begin()+4,a.end());
for(auto x:a) cout<<x<<endl;
cout <<"Min is " <<bs(a) <<endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8YWxnb3JpdGhtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBicyh2ZWN0b3I8aW50PiBhKQp7CiAgICBpbnQgbCA9MCwgciA9IGEuc2l6ZSgpLTE7CgogICAgd2hpbGUobDw9cikKICAgIHsKICAgICAgICBpbnQgbWlkID0gbCArIChyLWwpLzI7IC8vIE1pZCBndWFyYW50ZWVkIHRvIGJlIGluIHJhbmdlCgogICAgICAgIGlmKGFbbWlkLTFdPmFbbWlkXSkgcmV0dXJuIGFbbWlkXTsKCiAgICAgICAgaWYoYVttaWRdPmFbbF0pCiAgICAgICAgewogICAgICAgICAgICBsPW1pZCsxIDsgY29udGludWU7CiAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICB7CiAgICAgICAgICAgIHIgPSBtaWQtMSA7IC8vTWlkIGhhcyBiZWVuIGNoZWNrZWQKICAgICAgICB9CiAgICB9Cn0KCmludCBtYWluKCkKewogIHZlY3RvcjxpbnQ+IGEgPSB7MSwyLDMsNSw2LDcsOCw5LDEwfTsKICByb3RhdGUoYS5iZWdpbigpLGEuYmVnaW4oKSs0LGEuZW5kKCkpOwogIGZvcihhdXRvIHg6YSkgY291dDw8eDw8ZW5kbDsKICBjb3V0IDw8Ik1pbiBpcyAiIDw8YnMoYSkgPDxlbmRsOwogIHJldHVybiAwOwp9