mirror of
https://github.com/Noratrieb/advent-of-code.git
synced 2026-01-17 02:55:01 +01:00
cleanup
This commit is contained in:
parent
e94ae9a7af
commit
43ba56e237
1 changed files with 7 additions and 7 deletions
|
|
@ -20,13 +20,13 @@ pub fn part2(input: &str) -> u64 {
|
||||||
.map(|seed| (0, 0, seed[0]..(seed[0] + seed[1])))
|
.map(|seed| (0, 0, seed[0]..(seed[0] + seed[1])))
|
||||||
.collect();
|
.collect();
|
||||||
|
|
||||||
'queue: while let Some((place, range_idx, numbers)) = current_seeds.pop() {
|
'queue: while let Some((stage, range_idx, numbers)) = current_seeds.pop() {
|
||||||
if place == maps.len() {
|
if stage == maps.len() {
|
||||||
// Range is done.
|
// Range is done.
|
||||||
min_loc = cmp::min(min_loc, numbers.start);
|
min_loc = cmp::min(min_loc, numbers.start);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
let ranges = &maps[place];
|
let ranges = &maps[stage];
|
||||||
for range in ranges.iter().skip(range_idx) {
|
for range in ranges.iter().skip(range_idx) {
|
||||||
if range.source_end() <= numbers.start || range.source_start >= numbers.end {
|
if range.source_end() <= numbers.start || range.source_start >= numbers.end {
|
||||||
// Completely out of range.
|
// Completely out of range.
|
||||||
|
|
@ -40,21 +40,21 @@ pub fn part2(input: &str) -> u64 {
|
||||||
let post = range.source_end()..(numbers.end);
|
let post = range.source_end()..(numbers.end);
|
||||||
|
|
||||||
if !pre.is_empty() {
|
if !pre.is_empty() {
|
||||||
current_seeds.push((place, range_idx + 1, pre));
|
current_seeds.push((stage, range_idx + 1, pre));
|
||||||
}
|
}
|
||||||
if !post.is_empty() {
|
if !post.is_empty() {
|
||||||
current_seeds.push((place, range_idx + 1, post));
|
current_seeds.push((stage, range_idx + 1, post));
|
||||||
}
|
}
|
||||||
let offset = in_.start - range.source_start;
|
let offset = in_.start - range.source_start;
|
||||||
let new = (range.dest_start + offset)..(range.dest_start + offset + (in_.end - in_.start));
|
let new = (range.dest_start + offset)..(range.dest_start + offset + (in_.end - in_.start));
|
||||||
|
|
||||||
if !new.is_empty() {
|
if !new.is_empty() {
|
||||||
current_seeds.push((place + 1, 0, new));
|
current_seeds.push((stage + 1, 0, new));
|
||||||
}
|
}
|
||||||
continue 'queue;
|
continue 'queue;
|
||||||
}
|
}
|
||||||
// No change, pass unaffected
|
// No change, pass unaffected
|
||||||
current_seeds.push((place + 1, 0, numbers));
|
current_seeds.push((stage + 1, 0, numbers));
|
||||||
}
|
}
|
||||||
|
|
||||||
min_loc
|
min_loc
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue