int search_n(vector<int> &A,int left,int right,int target)
{
while (left < right - 1)
{
int mid = (left + right) / 2;
if (target == A[mid])
return mid;
if (A[left] < A[mid])
{
if (A[left] <= target && A[mid] >= target)
right = mid;
else
left = mid;
}
else
{
if (A[mid] <= target && A[right] >= target )
left = mid;
else
right = mid;
}
}
if(A[left]==target)
return left;
else if(A[right]==target)
return right;
else
return -1;
}
int search(vector<int> &A, int target) {
// write your code here
if(A.empty())
return -1;
int left=0,right=A.size()-1;
int res=search_n(A,left,right,target);
return res;
}