From 9292a54468b5529e392c86c35d290dac10c5b513 Mon Sep 17 00:00:00 2001 From: Cassandra de la Cruz-Munoz Date: Wed, 6 Dec 2023 13:48:24 +0100 Subject: [PATCH] Add src/06part1.rs --- src/06part1.rs | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 src/06part1.rs diff --git a/src/06part1.rs b/src/06part1.rs new file mode 100644 index 0000000..7636938 --- /dev/null +++ b/src/06part1.rs @@ -0,0 +1,29 @@ +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: Vec = time_str.split_whitespace().map(|x| x.parse::().ok().unwrap()).collect(); + let distance_str = lines.next().unwrap().strip_prefix("Distance: ").unwrap(); + let distances: Vec = distance_str.split_whitespace().map(|x| x.parse::().ok().unwrap()).collect(); + let mut total = 1; + for i in 0..times.len() { + let mut j = 0; + let mut k = times[i]-1; + loop { + if j*(times[i]-j) <= distances[i] { + j += 1; + } + if k*(times[i]-k) <= distances[i] { + k -= 1; + } + if j*(times[i]-j) > distances[i] && k*(times[i]-k) > distances[i] { + total *= k - j + 1; + break; + } + } + } + println!("{}", total); +}