use std::io; use std::io::BufRead; use std::collections::HashSet; pub fn main(reader: T) -> io::Result<()> { let values: Vec = reader.lines().map(|l| l.unwrap().parse::().unwrap()).collect(); println!("{}", values.iter().sum::()); let mut seen = HashSet::new(); seen.insert(0); let mut res = 0; for val in values.iter().cycle() { res += val; if seen.contains(&res) { println!("{}", res); return Ok(()); } else { seen.insert(res); } } unreachable!() }