use std::error::Error; use std::fs::File; use std::io::{self, BufRead}; use std::vec::Vec; fn main() -> Result<(), Box> { let file = File::open("inputs/day13.txt")?; let mut lines = io::BufReader::new(file).lines().map(|l| l.unwrap()); let buses: Vec> = lines .nth(1) .unwrap() .split(',') .map(|b| b.parse().ok()) .collect(); let mut step = buses[0].unwrap(); let mut t: u64 = 0; for i in 1..buses.len() { if let Some(bus) = buses[i] { loop { t = t + step; if (t + i as u64) % bus == 0 { step = step * bus; break; } } } } println!("{}", t); Ok(()) }