use std::fs::File; use std::io; use std::io::BufRead; use std::io::BufReader; pub fn part1() -> io::Result { let file = File::open("input/day1")?; let reader = BufReader::new(file); let mut first = true; let mut previous = 0; let mut count = 0; for line in reader.lines() { let num: u32 = line?.parse().unwrap(); if !first && num > previous { count += 1; } previous = num; first = false; } Ok(count) } pub fn part2() -> io::Result { let file = File::open("input/day1")?; let reader = BufReader::new(file); let mut vals: [u32; 3] = [0, 0, 0]; let mut count = 0; for (i, line) in reader.lines().enumerate() { let num: u32 = line?.parse().unwrap(); if i < 3 { vals[i] = num; } else { // Calculate the previous sum let sum = vals[0] + vals[1] + vals[2]; // Shift the values vals[0] = vals[1]; vals[1] = vals[2]; vals[2] = num; let new_sum = vals[0] + vals[1] + vals[2]; if new_sum > sum { count += 1; } } } Ok(count) }