1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
//! # Day 24: Air Duct Spelunking
//!
//! You've finally met your match; the doors that provide access to the roof are locked tight, and
//! all of the controls and related electronics are inaccessible. You simply can't reach them.
//!
//! The robot that cleans the air ducts, however, **can**.
//!
//! It's not a very fast little robot, but you reconfigure it to be able to interface with some of
//! the exposed wires that have been routed through the [HVAC] system. If you can direct it to each
//! of those locations, you should be able to bypass the security controls.
//!
//! You extract the duct layout for this area from some blueprints you acquired and create a map
//! with the relevant locations marked (your puzzle input). `0` is your current location, from which
//! the cleaning robot embarks; the other numbers are (in **no particular order**) the locations the
//! robot needs to visit at least once each. Walls are marked as `#`, and open passages are marked
//! as `.`. Numbers behave like open passages.
//!
//! For example, suppose you have a map like the following:
//!
//! ```txt
//! ###########
//! #0.1.....2#
//! #.#######.#
//! #4.......3#
//! ###########
//! ```
//!
//! To reach all of the points of interest as quickly as possible, you would have the robot take the
//! following path:
//!
//! - `0` to `4` (`2` steps)
//! - `4` to `1` (`4` steps; it can't move diagonally)
//! - `1` to `2` (`6` steps)
//! - `2` to `3` (`2` steps)
//!
//! Since the robot isn't very fast, you need to find it the **shortest route**. This path is the
//! fewest steps (in the above example, a total of `14`) required to start at `0` and then visit
//! every other location at least once.
//!
//! Given your actual map, and starting from location `0`, what is the **fewest number of steps**
//! required to visit every non-`0` number marked on the map at least once?
//!
//! [HVAC]: https://en.wikipedia.org/wiki/HVAC
use anyhow::Result;
pub const INPUT: &str = include_str!("d24.txt");
pub fn solve_part_one(input: &str) -> Result<i64> {
Ok(0)
}
pub fn solve_part_two(input: &str) -> Result<i64> {
Ok(0)
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn part_one() {}
#[test]
fn part_two() {}
}