From 0bc2267397942fd7f00c4a6e8b23aa3d76c672e5 Mon Sep 17 00:00:00 2001 From: timeshifter Date: Tue, 23 Jun 2026 19:06:56 +0200 Subject: [PATCH] clean up 14 --- day14/src/main.rs | 27 ++++++++++----------------- 1 file changed, 10 insertions(+), 17 deletions(-) diff --git a/day14/src/main.rs b/day14/src/main.rs index d47a925..692aaaa 100644 --- a/day14/src/main.rs +++ b/day14/src/main.rs @@ -18,12 +18,7 @@ fn part2(data: &[Reindeer]) { race.tick(); } - let result = race - .participants - .iter() - .map(|p| p.reindeer.points) - .max() - .unwrap(); + let result = race.participants.iter().map(|p| p.points).max().unwrap(); println!("{result}"); } @@ -37,7 +32,7 @@ fn part1(data: &[Reindeer]) { let result = race .participants .iter() - .map(|p| p.reindeer.distance_travelled) + .map(|p| p.distance_travelled) .max() .unwrap(); println!("{result}"); @@ -63,7 +58,7 @@ impl Race { self.clock += 1; for p in &mut self.participants { if p.state == Flying { - p.reindeer.distance_travelled += p.reindeer.speed; + p.distance_travelled += p.reindeer.speed; p.current_activity_time += 1; if p.current_activity_time == p.reindeer.fly_time { p.current_activity_time = 0; @@ -80,12 +75,12 @@ impl Race { let max_distance = self .participants .iter() - .map(|p| p.reindeer.distance_travelled) + .map(|p| p.distance_travelled) .max() .unwrap(); for p in &mut self.participants { - if p.reindeer.distance_travelled == max_distance { - p.reindeer.points += 1; + if p.distance_travelled == max_distance { + p.points += 1; } } } @@ -96,6 +91,8 @@ struct Participant { pub reindeer: Reindeer, pub state: State, pub current_activity_time: usize, + pub distance_travelled: usize, + pub points: usize, } impl Participant { @@ -104,6 +101,8 @@ impl Participant { reindeer: r, state: State::Flying, current_activity_time: 0, + distance_travelled: 0, + points: 0, } } } @@ -119,8 +118,6 @@ struct Reindeer { pub speed: usize, pub fly_time: usize, pub rest_time: usize, - pub distance_travelled: usize, - pub points: usize, } impl Reindeer { @@ -130,15 +127,11 @@ impl Reindeer { let speed = iter.nth(3).unwrap().parse().unwrap(); let fly_time = iter.nth(2).unwrap().parse().unwrap(); let rest_time = iter.nth_back(1).unwrap().parse().unwrap(); - let distance_travelled = 0; - let points = 0; Self { speed, fly_time, rest_time, - distance_travelled, - points, } } }