diff --git a/day1/input.txt b/day1/input.txt index 38b625c..8a33563 100644 --- a/day1/input.txt +++ b/day1/input.txt @@ -2253,3 +2253,4 @@ 1791 1510 5279 + diff --git a/day1/src/main.rs b/day1/src/main.rs index 5be1133..e9704fc 100644 --- a/day1/src/main.rs +++ b/day1/src/main.rs @@ -8,18 +8,25 @@ fn main() { let input = &args[1]; let reader = BufReader::new(File::open(input).expect("where file?")); - let mut sum: i64 = 0; - let mut max: i64 = 0; + let (mut sum, mut max1, mut max2, mut max3) = (0, 0, 0, 0); for line in reader.lines() { if !line.as_ref().unwrap().trim().is_empty() { sum += line.unwrap().parse::().unwrap(); } else { - if sum > max { - max = sum; + println!(" {}? {} {} {}", sum, max1, max2, max3); + if sum > max1 { + max3 = max2; + max2 = max1; + max1 = sum; + } else if sum > max2 { + max3 = max2; + max2 = sum; + } else if sum > max3 { + max3 = sum; } sum = 0; } } - println!("Max: {}", max); + println!("Max3: {}", max1 + max2 + max3); } diff --git a/day1/src/main1.rs b/day1/src/main1.rs new file mode 100644 index 0000000..5be1133 --- /dev/null +++ b/day1/src/main1.rs @@ -0,0 +1,25 @@ +use std::env; +use std::fs::File; +use std::io::BufReader; +use std::io::BufRead; + +fn main() { + let args: Vec = env::args().collect(); + let input = &args[1]; + let reader = BufReader::new(File::open(input).expect("where file?")); + + let mut sum: i64 = 0; + let mut max: i64 = 0; + for line in reader.lines() { + if !line.as_ref().unwrap().trim().is_empty() { + sum += line.unwrap().parse::().unwrap(); + } else { + if sum > max { + max = sum; + } + sum = 0; + } + } + + println!("Max: {}", max); +} diff --git a/day1/test.txt b/day1/test.txt index 2094f91..d0140a3 100644 --- a/day1/test.txt +++ b/day1/test.txt @@ -12,3 +12,4 @@ 9000 10000 +