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
//! # Day 11: Hex Ed
//!
//! Crossing the bridge, you've barely reached the other side of the stream when a program comes up
//! to you, clearly in distress. "It's my child process," she says, "he's gotten lost in an infinite
//! grid!"
//!
//! Fortunately for her, you have plenty of experience with infinite grids.
//!
//! Unfortunately for you, it's a [hex grid].
//!
//! The hexagons ("hexes") in this grid are aligned such that adjacent hexes can be found to the
//! north, northeast, southeast, south, southwest, and northwest:
//!
//! ```txt
//! \ n /
//! nw +--+ ne
//! / \
//! -+ +-
//! \ /
//! sw +--+ se
//! / s \
//! ```
//!
//! You have the path the child process took. Starting where he started, you need to determine the
//! fewest number of steps required to reach him. (A "step" means to move from the hex you are in to
//! any adjacent hex.)
//!
//! For example:
//!
//! - `ne,ne,ne` is `3` steps away.
//! - `ne,ne,sw,sw` is `0` steps away (back where you started).
//! - `ne,ne,s,s` is `2` steps away (`se,se`).
//! - `se,sw,se,sw,sw` is `3` steps away (`s,s,sw`).
//!
//! [hex grid]: https://en.wikipedia.org/wiki/Hexagonal_tiling
use anyhow::Result;
pub const INPUT: &str = include_str!("d11.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() {}
}