Function advent_of_code_2021::day_19::merge_all[−][src]

fn merge_all(
    scanners: &Vec<Vec<(isize, isize, isize)>>
) -> (HashSet<(isize, isize, isize)>, HashSet<(isize, isize, isize)>)
Expand description

Use the first scanner as the base set, and repeatedly hunt for scanners that can be merged until the relative positions of all of them has been determined, Return the set of beacons that results in, and the list of scanner offsets. Note the order of the scanner list doesn’t matter so the more efficient Vec::swap_remove can be used.