1
0
Fork 0

Solve day 5

This commit is contained in:
Lars Martens 2023-12-05 12:36:46 +01:00
parent 0029059c73
commit bed3d58260
Signed by: haselkern
GPG key ID: B5CF1F363C179AD4
3 changed files with 238 additions and 1 deletions

View file

@ -1,4 +1,5 @@
use itertools::Itertools;
use rayon::iter::{IntoParallelIterator, IntoParallelRefIterator, ParallelIterator};
const INPUT: &str = include_str!("../../input/05");
const TEST_INPUT: &str = include_str!("../../input/05-test");
@ -22,7 +23,14 @@ fn part1(input: &str) -> u64 {
}
fn part2(input: &str) -> u64 {
0
let garden = Garden::parse(input);
garden
.seed_ranges
.par_iter()
.flat_map(|range| range.par_iter())
.map(|seed| garden.map(seed))
.min()
.unwrap()
}
#[derive(Debug)]
@ -68,6 +76,13 @@ struct SeedRange {
length: u64,
}
impl SeedRange {
fn par_iter(&self) -> impl ParallelIterator<Item = u64> {
let end = self.start + self.length;
(self.start..=end).into_par_iter()
}
}
#[derive(Debug)]
struct Map {
ranges: Vec<MappedRange>,