class Solution {
public:
vector<int> searchRange(int A[], int n, int target) {
vector<int> v;
int equal,m,k;
equal = index(A,n,target);
if(equal == -1){
v.push_back(-1);
v.push_back(-1);
return v;
}else{
m = k = equal;
while(A[m - 1] == A[equal] && m > 0) m --;
while(A[k + 1] == A[equal] && k < n - 1) k ++;
v.push_back(m);
v.push_back(k);
return v;
}
}
int index(int A[],int n,int num){
int first = 0,end = n - 1,mid;
int result = -1;
while(first <= end){
mid = (first + end)/2;
if(A[mid] == num)
return mid;
else if(A[mid] > num)
end = mid - 1;
else
first = mid + 1;
}
return result;
}
};