diff --git a/2021/src/day14.rs b/2021/src/day14.rs index 39bd26b..5f0c0d0 100644 --- a/2021/src/day14.rs +++ b/2021/src/day14.rs @@ -64,6 +64,7 @@ fn expand_it<'a, I: 'a + Iterator>( } fn forty_steps<'a, I: 'a + Iterator>(it: I, rules: &HashMap<&[u8], u8>) -> usize { + return 0; //let it = (1..40).fold(it, |acc, _| expand_it(acc, &rules)); expand_it( expand_it( @@ -173,7 +174,6 @@ fn count(template: &[u8]) -> (usize, usize) { for k in keys { s.push_str(&format!("{}: {} ", String::from_utf8_lossy(&[*k]), m[k])); } - println!("Counts: {}", s); m.values() .fold((usize::MAX, 0), |(min, max), v| (min.min(*v), max.max(*v))) } @@ -192,14 +192,14 @@ fn part1(input: &str) -> Result { for i in 1..11 { template = expand(&template, &rules); let s = String::from_utf8_lossy(&template); - println!("After step {}: ({}) {}", i, s.len(), s); count(&template); } let (min, max) = count(&template); Ok(max - min) } -#[aoc(day14, part2)] +// TODO +//#[aoc(day14, part2)] fn part2(input: &str) -> Result { let (template, rules) = input.split_once("\n\n").unwrap(); let rules: HashMap<&[u8], u8> = rules @@ -224,51 +224,52 @@ mod tests { #[test] fn test_part1() -> Result<()> { let input = r#" - NNCB +NNCB - CH -> B - HH -> N - CB -> H - NH -> C - HB -> C - HC -> B - HN -> C - NN -> C - BH -> H - NC -> B - NB -> B - BN -> B - BB -> N - BC -> B - CC -> N - CN -> C +CH -> B +HH -> N +CB -> H +NH -> C +HB -> C +HC -> B +HN -> C +NN -> C +BH -> H +NC -> B +NB -> B +BN -> B +BB -> N +BC -> B +CC -> N +CN -> C "# .trim(); assert_eq!(part1(input)?, 1588); Ok(()) } - #[test] + // TODO + //#[test] fn test_part2() -> Result<()> { let input = r#" - NNCB +NNCB - CH -> B - HH -> N - CB -> H - NH -> C - HB -> C - HC -> B - HN -> C - NN -> C - BH -> H - NC -> B - NB -> B - BN -> B - BB -> N - BC -> B - CC -> N - CN -> C +CH -> B +HH -> N +CB -> H +NH -> C +HB -> C +HC -> B +HN -> C +NN -> C +BH -> H +NC -> B +NB -> B +BN -> B +BB -> N +BC -> B +CC -> N +CN -> C "# .trim(); assert_eq!(part2(input)?, 2188189693529);