Day 13: Shuttle Search¶
Functions:
|
Compute the next departure of |
|
Find the earliest bus to catch after |
|
Parse the input into (earliest departure time, bus IDs). |
|
Execute the main routine. |
- next_departure(bus_id: int, min_time: int) int [source]¶
Compute the next departure of
bus_id
leaving earliest atmin_time
.- Requires
bus_id > 0
min_time >= 0
- Ensures
min_time == 0
⇒result == 0
(All buses leave at time zero.)
result < min_time + bus_id
result >= min_time
- find_departure(start_time: int, bus_ids: Set[int]) Tuple[int, int] [source]¶
Find the earliest bus to catch after
start_time
.- Requires
all(i > 0 for i in bus_ids)
len(bus_ids) > 0
start_time >= 0
- Ensures
result[0] % result[1] == 0
(Departure time matches at least one bus.)
result[0] >= start_time