File tree Expand file tree Collapse file tree 1 file changed +8
-0
lines changed
src/main/python/aoc23/day05 Expand file tree Collapse file tree 1 file changed +8
-0
lines changed Original file line number Diff line number Diff line change @@ -57,12 +57,20 @@ def lookup_min_location(seed_range):
57
57
max_jump = sys .maxsize
58
58
for map_name , ranges in mappings .items ():
59
59
log .debug (f"Looking up { n } for { map_name } " )
60
+ n_belongs_to_any_interval = False
60
61
for dst_start , src_start , range_len in ranges :
61
62
src_end = src_start + range_len
62
63
if src_start <= n < src_end :
64
+ n_belongs_to_any_interval = True
63
65
max_jump = min (max_jump , src_end - n )
64
66
n = dst_start + (n - src_start )
65
67
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 } " )
66
74
log .debug (f"We can safely jump by { max_jump } " )
67
75
seed += max_jump
68
76
min_location = min (min_location , n )
You can’t perform that action at this time.
0 commit comments