AoC2020/src/bin/day13_part2.rs

35 lines
783 B
Rust

use std::error::Error;
use std::fs::File;
use std::io::{self, BufRead};
use std::vec::Vec;
fn main() -> Result<(), Box<dyn Error>> {
let file = File::open("inputs/day13.txt")?;
let mut lines = io::BufReader::new(file).lines().map(|l| l.unwrap());
let buses: Vec<Option<u64>> = 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(())
}