use aoc_runner_derive::{aoc, aoc_generator}; type Data = [usize;9]; #[aoc_generator(day06)] pub fn input_generator(input: &str) -> [usize;9] { let mut state: [usize;9] = [0;9]; let input = input.trim().split(',').map(|v| v.parse::().unwrap()); for v in input { state[v]+=1; } state } fn simulate(input: &Data,n: usize) -> usize { let mut state=*input; for i in 0..n { state[(7+i)%9]+=state[i%9]; } state.iter().sum() } #[aoc(day06, part1)] // 353274 pub fn solve_part1(input: &Data) -> usize { simulate(input,80) } #[aoc(day06, part2)] // 1609314870967 pub fn solve_part2(input: &Data) -> usize { simulate(input,256) }