Each meeting is a pair (start, end) with start < end. A meeting occupies the time from start up to but not including end, so a meeting that ends at 10 and one that starts at 10 do not clash.
Write can_attend_all(meetings: list[tuple[int, int]]) -> bool that returns True if one person could attend every meeting (no two overlap), and False otherwise. The meetings are in no particular order.
can_attend_all([(9, 10), (13, 14), (10, 12)]) # True (10 ends one and starts the next)
can_attend_all([(1, 5), (8, 9), (4, 6)]) # False ((1, 5) and (4, 6) share time 4..5)
can_attend_all([]) # True
Constraints: up to 10^5 meetings, times between -10^9 and 10^9. Comparing every pair is O(n²) and too slow for the large test.
Show hint
sort by start time; after sorting, any overlap must show up between two neighbours, so just check next.start < previous.end.