Drill

ProblemsPython › events

How many event pairs overlap

hardeventsPython

A room-booking audit counts every pair of events that clash so the worst offenders can be resolved.

conflict_pairs(events: list<Event>) → int

Solve it in the editor →

Where you start

def conflict_pairs(events: list[Event]) -> int:
    

Worked examples

CallResult
conflict_pairs([Event(start=1, end=5), Event(start=3, end=8), Event(start=10, end=15)])1
conflict_pairs([Event(start=1, end=5), Event(start=6, end=10)])0
conflict_pairs([Event(start=1, end=5), Event(start=2, end=4), Event(start=3, end=8)])3
conflict_pairs([Event(start=1, end=10), Event(start=2, end=3), Event(start=4, end=5), Event(start=6, end=7)])3

Hint

A brute-force double loop over all i < j pairs and the overlap test from bookings-overlap.

Reference solution in Python
def conflict_pairs(events: list[Event]) -> int:
    count = 0
    for i in range(len(events)):
        for j in range(i + 1, len(events)):
            if events[i].start < events[j].end and events[j].start < events[i].end:
                count += 1
    return count

The same problem in another language

More events problems in Python