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: Corporate Policy
//!
//! Santa's previous password expired, and he needs help choosing a new one.
//!
//! To help him remember his new password after the old one expires, Santa has devised a method of
//! coming up with a password based on the previous one. Corporate policy dictates that passwords
//! must be exactly eight lowercase letters (for security reasons), so he finds his new password by
//! **incrementing** his old password string repeatedly until it is valid.
//!
//! Incrementing is just like counting with numbers: `xx`, `xy`, `xz`, `ya`, `yb`, and so on.
//! Increase the rightmost letter one step; if it was `z`, it wraps around to `a`, and repeat with
//! the next letter to the left until one doesn't wrap around.
//!
//! Unfortunately for Santa, a new Security-Elf recently started, and he has imposed some additional
//! password requirements:
//!
//! - Passwords must include one increasing straight of at least three letters, like `abc`, `bcd`,
//! `cde`, and so on, up to `xyz`. They cannot skip letters; `abd` doesn't count.
//! - Passwords may not contain the letters `i`, `o`, or `l`, as these letters can be mistaken for
//! other characters and are therefore confusing.
//! - Passwords must contain at least two different, non-overlapping pairs of letters, like `aa`,
//! `bb`, or `zz`.
//!
//! For example:
//!
//! - `hijklmmn` meets the first requirement (because it contains the straight `hij`) but fails the
//! second requirement requirement (because it contains `i` and `l`).
//! - `abbceffg` meets the third requirement (because it repeats `bb` and `ff`) but fails the first
//! requirement.
//! - `abbcegjk` fails the third requirement, because it only has one double letter (`bb`).
//! - The next password after `abcdefgh` is `abcdffaa`.
//! - The next password after `ghijklmn` is `ghjaabcc`, because you eventually skip all the
//! passwords that start with `ghi...`, since `i` is not allowed.
//!
//! Given Santa's current password (your puzzle input), what should his **next password** be?
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() {}
}