use utils::load_string; const TEST_INPUT: &str = "L68 L30 R48 L5 R60 L55 L1 L99 R14 L82"; const START: u32 = 50; enum Rotation { Left(u32), Right(u32), } fn parse(input: &str) -> Vec { input.lines().map(|l| { let (indicator, number) = l.split_at(1); match indicator { "L" => Rotation::Left(number.parse().unwrap()), "R" => Rotation::Right(number.parse().unwrap()), _ => panic!("hey!") } }).collect() } pub fn part1() -> u32 { let input = &load_string("inputs/2025/day1.input"); //let input = TEST_INPUT; let mut current_rotation = START; let mut result: u32 = 0; for roation in parse(input).iter() { match roation { Rotation::Left(amount) => { // overflows to the left current_rotation = (((current_rotation as i32) - *amount as i32).rem_euclid(100)) as u32; }, Rotation::Right(amount) => { // overflows to the right current_rotation = (((current_rotation as i32) + *amount as i32).rem_euclid(100)) as u32; }, } if current_rotation == 0 { result += 1; } } result } pub fn part2() -> u32 { 0 }