#include <iostream>
#include <vector>
using namespace std;
int indexOfFirstElement(vector<int> &a, int s, int e) {
if (s == e || a[s] < a[e]) {
return s;
}
int mid = s + (e-s)/2;
if (a[mid] > a[s]) {
s = mid + 1;
} else {
e = mid;
}
return indexOfFirstElement(a, s, e);
}
int main()
{
vector<int> a = {5,6,1,2,4};
cout<< indexOfFirstElement(a, 0, a.size()-1) << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwppbnQgaW5kZXhPZkZpcnN0RWxlbWVudCh2ZWN0b3I8aW50PiAmYSwgaW50IHMsIGludCBlKSB7CmlmIChzID09IGUgfHwgYVtzXSA8IGFbZV0pIHsKCXJldHVybiBzOwp9CmludCBtaWQgPSBzICsgKGUtcykvMjsKaWYgKGFbbWlkXSA+IGFbc10pIHsKCXMgPSBtaWQgKyAxOwp9IGVsc2UgewoJZSA9IG1pZDsKfQpyZXR1cm4gaW5kZXhPZkZpcnN0RWxlbWVudChhLCBzLCBlKTsKfQppbnQgbWFpbigpCnsKICAgdmVjdG9yPGludD4gYSA9IHs1LDYsMSwyLDR9OwogICBjb3V0PDwgaW5kZXhPZkZpcnN0RWxlbWVudChhLCAwLCBhLnNpemUoKS0xKSA8PCBlbmRsOwogICByZXR1cm4gMDsKfQoK