aboutsummaryrefslogtreecommitdiff
path: root/src/day5pt2.rs
diff options
context:
space:
mode:
authorAleksa Vuckovic <aleksa@vuckovic.cc>2023-12-06 01:45:05 +0100
committerAleksa Vuckovic <aleksa@vuckovic.cc>2023-12-06 01:45:05 +0100
commit8089545c22b1ae4a98e967f070c3e298e6808961 (patch)
tree0f8b13fbdeffc7ae03f3d7bfefbf6ef81bb3fb3a /src/day5pt2.rs
Initial commit
Diffstat (limited to 'src/day5pt2.rs')
-rw-r--r--src/day5pt2.rs39
1 files changed, 39 insertions, 0 deletions
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<i64> = 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<i64> = 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::<Vec<_>>()
+ .get(1)
+ .unwrap()
+ .split(" ")
+ .map(|s| s.parse().unwrap())
+ .collect();
+ }
+ }
+ println!("{}", 0);
+}