Minimum Time Required

  • + 7 comments

    No need to sort machines if we only need the min and max values

    def minTime(machines, goal):
        minday = math.ceil(goal / len(machines)) * min(machines)
        maxday = math.ceil(goal / len(machines) * max(machines))
        while minday < maxday:
            day = (maxday + minday) // 2
            if sum(day // m for m in machines) >= goal:
                maxday = day
            else:
                minday = day + 1
        return minday