Skip to content

Commit ec9c89f

Browse files
author
Jan Verner
committed
AoC Day 5 - Fix
1 parent 9910cc9 commit ec9c89f

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

src/main/python/aoc23/day05/day05.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,12 +57,20 @@ def lookup_min_location(seed_range):
5757
max_jump = sys.maxsize
5858
for map_name, ranges in mappings.items():
5959
log.debug(f"Looking up {n} for {map_name}")
60+
n_belongs_to_any_interval = False
6061
for dst_start, src_start, range_len in ranges:
6162
src_end = src_start + range_len
6263
if src_start <= n < src_end:
64+
n_belongs_to_any_interval = True
6365
max_jump = min(max_jump, src_end - n)
6466
n = dst_start + (n - src_start)
6567
break
68+
if not n_belongs_to_any_interval:
69+
# we need to adjust max jump by searching for the closest upper interval
70+
for _, src_start, _ in ranges:
71+
if src_start > n:
72+
max_jump = min(max_jump, src_start - n)
73+
log.debug(f"Location for seed {seed} is {n}")
6674
log.debug(f"We can safely jump by {max_jump}")
6775
seed += max_jump
6876
min_location = min(min_location, n)

0 commit comments

Comments
 (0)