From 8ab3bcb7992ecd4d0234ff31ab2e50d1562f67ba Mon Sep 17 00:00:00 2001 From: Mathias Magnusson Date: Sat, 6 Jul 2024 14:10:15 +0200 Subject: Some old uncommited aoc22 --- aoc22/day4/src/main.rs | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 aoc22/day4/src/main.rs (limited to 'aoc22/day4/src/main.rs') diff --git a/aoc22/day4/src/main.rs b/aoc22/day4/src/main.rs new file mode 100644 index 0000000..2dc7299 --- /dev/null +++ b/aoc22/day4/src/main.rs @@ -0,0 +1,52 @@ +#![feature(iter_next_chunk)] + +fn main() { + part1(); + part2(); +} + +fn part1() { + let input = include_str!("../input"); + + let mut ans = 0; + for line in input.lines() { + let mut split = line + .split(',') + .flat_map(|elf| elf.split('-').flat_map(|x| x.parse::())); + let b1 = split.next().unwrap(); + let e1 = split.next().unwrap(); + let b2 = split.next().unwrap(); + let e2 = split.next().unwrap(); + let s1 = b1..=e1; + let s2 = b2..=e2; + + if s1.contains(&b2) && s1.contains(&e2) || s2.contains(&b1) && s2.contains(&e1) { + ans += 1; + } + } + + println!("{}", ans); +} + +fn part2() { + let input = include_str!("../input"); + + let mut ans = 0; + for line in input.lines() { + let mut split = line + .split(',') + .flat_map(|elf| elf.split('-').flat_map(|x| x.parse::())); + let b1 = split.next().unwrap(); + let e1 = split.next().unwrap(); + let b2 = split.next().unwrap(); + let e2 = split.next().unwrap(); + let s1 = b1..=e1; + let s2 = b2..=e2; + + if s1.contains(&b2) || s1.contains(&e2) || s2.contains(&b1) || s2.contains(&e1) { + ans += 1; + } + } + + println!("{}", ans); +} -- cgit v1.2.3