From d5d866ca3abadf61fd918faa6171a624a73f03bd Mon Sep 17 00:00:00 2001 From: Cassandra de la Cruz-Munoz Date: Wed, 6 Dec 2023 13:49:00 +0100 Subject: [PATCH] Add src/06part2.rs --- src/06part2.rs | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 src/06part2.rs diff --git a/src/06part2.rs b/src/06part2.rs new file mode 100644 index 0000000..8e9576a --- /dev/null +++ b/src/06part2.rs @@ -0,0 +1,27 @@ +use std::fs; + +fn main() { + let file_path = "input/06input.txt"; + let contents = fs::read_to_string(file_path).expect("should read file"); + let mut lines = contents.lines(); + let time_str = lines.next().unwrap().strip_prefix("Time: ").unwrap(); + let times = time_str.split_whitespace().fold(String::new(), |acc, x| acc + x).parse::().ok().unwrap(); + let distance_str = lines.next().unwrap().strip_prefix("Distance: ").unwrap(); + let distances = distance_str.split_whitespace().fold(String::new(), |acc, x| acc + x).parse::().ok().unwrap(); + let mut total = 1; + let mut j = 0; + let mut k = times-1; + loop { + if j*(times-j) <= distances { + j += 1; + } + if k*(times-k) <= distances { + k -= 1; + } + if j*(times-j) > distances && k*(times-k) > distances { + total *= k - j + 1; + break; + } + } + println!("{}", total); +}