use std::fs::File; use std::io::{self, BufRead}; use std::path::Path; pub fn part_one() { if let Ok(lines) = read_lines("./input.txt") { let mut margin = 1; let mut race_results: Vec> = Vec::new(); for line in lines { race_results.push(process_line(&line.unwrap())); } for i in 0..race_results[0].len() { margin *= process_race_result(race_results[0][i], race_results[1][i]); } println!("{:?}", margin); } } fn process_line(s: &str) -> Vec { let nums_str = s.split(':').collect::>()[1] .split_whitespace() .collect::>(); let nums: Vec = nums_str.iter().map(|s| s.parse::().unwrap()).collect(); return nums; } fn process_race_result(time: u32, distance: u32) -> u32 { let mut win_count = 0; for i in 0..time { if i * (time - i) > distance { win_count += 1; } } return win_count; } fn read_lines

(filename: P) -> io::Result>> where P: AsRef, { let file = File::open(filename)?; Ok(io::BufReader::new(file).lines()) }