Call center review

A call center reviews every shift whose average call lasted more than 8 minutes. The average is the total minutes on the phone divided by the number of calls. A shift can have 0 calls, for example during a phone outage, and such a shift is not reviewed.

The function needs_review(calls, total_minutes) must return True when the shift needs a review and False otherwise. It must never stop with an error. Listing 1 shows 4 implementations.

Which implementations in Listing 1 meet the specification for every shift, including a shift with 0 calls?

Listing 1: Four implementations of needs_review (Question 1).
(a)
def needs_review(calls: int, total_minutes: float) -> bool:
    return total_minutes / calls > 8 and calls > 0
(b)
def needs_review(calls: int, total_minutes: float) -> bool:
    return calls > 0 and total_minutes / calls > 8
(c)
def needs_review(calls: int, total_minutes: float) -> bool:
    return calls > 0 or total_minutes / calls > 8
(d)
def needs_review(
    calls: int,
    total_minutes: float,
) -> bool:
    if calls == 0:
        return False
    return total_minutes / calls > 8