use itertools::Itertools; 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/day1.txt")?; let lines = io::BufReader::new(file).lines(); let numbers: Vec = lines.map(|l| l.unwrap().parse().unwrap()).collect(); let count = 3; for combo in numbers.iter().combinations(count) { if combo.iter().fold(0u32, |acc, x| acc + **x) == 2020 { println!( "Combo: {:?} == {}", combo, combo.iter().fold(1u32, |acc, x| acc * **x) ); break; } } Ok(()) }