From 8089545c22b1ae4a98e967f070c3e298e6808961 Mon Sep 17 00:00:00 2001 From: Aleksa Vuckovic Date: Wed, 6 Dec 2023 01:45:05 +0100 Subject: Initial commit --- src/day5pt2.rs | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 src/day5pt2.rs (limited to 'src/day5pt2.rs') diff --git a/src/day5pt2.rs b/src/day5pt2.rs new file mode 100644 index 0000000..8f95d3d --- /dev/null +++ b/src/day5pt2.rs @@ -0,0 +1,39 @@ +pub fn main() { + let txt = std::fs::read_to_string("./input/day5.txt").unwrap(); + + let mut seeds: Vec = vec![]; + let mut rules: Vec<(i64, i64, i64)> = vec![]; + + for (i, line) in txt.lines().enumerate() { + if line != "" { + // dodaj u vec + if i != 0 && line.chars().nth(line.len() - 1).unwrap() != ':' { + let br: Vec = line.split(" ").map(|s| s.parse().unwrap()).collect(); + rules.push((br[0], br[1], br[2])); + } + } else { + // obradi + for i in 0..seeds.len() { + for rule in &rules { + if rule.1 <= seeds[i] && seeds[i] < rule.1 + rule.2 { + seeds[i] += rule.0 - rule.1; + break; + } + } + } + rules.clear(); + } + + if seeds.is_empty() && line != "" { + seeds = line + .split(": ") + .collect::>() + .get(1) + .unwrap() + .split(" ") + .map(|s| s.parse().unwrap()) + .collect(); + } + } + println!("{}", 0); +} -- cgit v1.2.3