FindLowerBound

int lowerBound(vector<int> arr, int n, int x) {
    int low = 0;
    int high = n-1;
    int ans = n;

    while(low <= high){
        int mid = low + (high-low)/2;
        if(arr[mid] >= x){
            ans = mid;
            high = mid-1;
        }
        else
            low = mid+1;
        }
    return ans;
}