#[macro_use] extern crate scan_fmt; fn main() { let mut passline: Vec = Vec::new(); let contents = std::fs::read_to_string("input1").unwrap(); for s in contents.lines() { passline.push(s.parse::().unwrap()); } let mut valid_passwords = 0; for line in passline.iter() { let (min, max, key, pass) = scan_fmt!(&line, "{}-{} {}: {}", usize, usize, char, String).unwrap(); if (pass.as_bytes()[min - 1] == key as u8 && pass.as_bytes()[max - 1] != key as u8) || (pass.as_bytes()[min - 1] != key as u8 && pass.as_bytes()[max - 1] == key as u8) { valid_passwords += 1; } } print!("Valid Passwords Found: {}\n", valid_passwords); }