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 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
//! # Day 24: Lobby Layout
//!
//! Your raft makes it to the tropical island; it turns out that the small crab was an excellent
//! navigator. You make your way to the resort.
//!
//! As you enter the lobby, you discover a small problem: the floor is being renovated. You can't
//! even reach the check-in desk until they've finished installing the **new tile floor**.
//!
//! The tiles are all **hexagonal**; they need to be arranged in a [hex grid] with a very specific
//! color pattern. Not in the mood to wait, you offer to help figure out the pattern.
//!
//! The tiles are all **white** on one side and **black** on the other. They start with the white
//! side facing up. The lobby is large enough to fit whatever pattern might need to appear there.
//!
//! A member of the renovation crew gives you a **list of the tiles that need to be flipped over**
//! (your puzzle input). Each line in the list identifies a single tile that needs to be flipped by
//! giving a series of steps starting from a **reference tile** in the very center of the room.
//! (Every line starts from the same reference tile.)
//!
//! Because the tiles are hexagonal, every tile has **six neighbors**: east, southeast, southwest,
//! west, northwest, and northeast. These directions are given in your list, respectively, as `e`,
//! `se`, `sw`, `w`, `nw`, and `ne`. A tile is identified by a series of these directions with **no
//! delimiters**; for example, `esenee` identifies the tile you land on if you start at the
//! reference tile and then move one tile east, one tile southeast, one tile northeast, and one tile
//! east.
//!
//! Each time a tile is identified, it flips from white to black or from black to white. Tiles might
//! be flipped more than once. For example, a line like `esew` flips a tile immediately adjacent to
//! the reference tile, and a line like `nwwswee` flips the reference tile itself.
//!
//! Here is a larger example:
//!
//! ```txt
//! sesenwnenenewseeswwswswwnenewsewsw
//! neeenesenwnwwswnenewnwwsewnenwseswesw
//! seswneswswsenwwnwse
//! nwnwneseeswswnenewneswwnewseswneseene
//! swweswneswnenwsewnwneneseenw
//! eesenwseswswnenwswnwnwsewwnwsene
//! sewnenenenesenwsewnenwwwse
//! wenwwweseeeweswwwnwwe
//! wsweesenenewnwwnwsenewsenwwsesesenwne
//! neeswseenwwswnwswswnw
//! nenwswwsewswnenenewsenwsenwnesesenew
//! enewnwewneswsewnwswenweswnenwsenwsw
//! sweneswneswneneenwnewenewwneswswnese
//! swwesenesewenwneswnwwneseswwne
//! enesenwswwswneneswsenwnewswseenwsese
//! wnwnesenesenenwwnenwsewesewsesesew
//! nenewswnwewswnenesenwnesewesw
//! eneswnwswnwsenenwnwnwwseeswneewsenese
//! neswnwewnwnwseenwseesewsenwsweewe
//! wseweeenwnesenwwwswnew
//! ```
//!
//! In the above example, 10 tiles are flipped once (to black), and 5 more are flipped twice (to
//! black, then back to white). After all of these instructions have been followed, a total of
//! **`10`** tiles are **black**.
//!
//! Go through the renovation crew's list and determine which tiles they need to flip. After all of
//! the instructions have been followed, **how many tiles are left with the black side up?**
//!
//! [hex grid]: https://en.wikipedia.org/wiki/Hexagonal_tiling
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() {}
}