class Heater:
    def findRadius(self, houses, heaters):
        heaters.sort()
        heater_len = len(heaters)
        radius = 0
        for house in houses:
            low, height = 0, heater_len - 1
            while low <= height:
                mid = (low + height) // 2
                if heaters[mid] > house:
                    height = mid - 1
                else:
                    low = mid + 1

            low_distance = abs(house - heaters[height])
            height_distance = abs(house - heaters[height + 1]) if height + 1 < heater_len else 922337203685477580
            min_radius = min(low_distance, height_distance)
            if radius < min_radius:
                radius = min_radius
        print(radius)
        return radius


houses = [1, 2, 3]
heaters = [2]
Heater().findRadius(houses, heaters)

houses = [1, 2, 3, 4]
heaters = [1, 4]
Heater().findRadius(houses, heaters)

houses = [1]
heaters = [1, 2, 3, 4]
Heater().findRadius(houses, heaters)
houses = [282475249, 622650073, 984943658, 144108930, 470211272, 101027544, 457850878, 458777923]
heaters = [823564440, 115438165, 784484492, 74243042, 114807987, 137522503, 441282327, 16531729, 823378840, 143542612]
Heater().findRadius(houses, heaters)