From 61205c81f79380c5b298e71532092b87852cc766 Mon Sep 17 00:00:00 2001 From: kageru Date: Sun, 13 Dec 2020 22:18:34 +0100 Subject: [PATCH] Optimize 2020/13/1 --- 2020/src/bin/day13.rs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/2020/src/bin/day13.rs b/2020/src/bin/day13.rs index 83c8699..63b4a0a 100644 --- a/2020/src/bin/day13.rs +++ b/2020/src/bin/day13.rs @@ -41,9 +41,12 @@ fn parse_input(raw: &str) -> Parsed { } fn part1((start, nums): &Parsed) -> i64 { - let nums = nums.iter().filter_map(|&n| n).collect_vec(); - let (eta, line) = (*start..).find_map(|t| nums.iter().find(|&n| t % n == 0).map(|n| (t, n))).unwrap(); - (eta - start) * line + nums.iter() + .filter_map(|&n| n) + .map(|n| (n, n - (start % n))) + .min_by_key(|(_, n)| *n) + .map(|(eta, line)| eta * line) + .unwrap() } fn part2((_, lines): &Parsed) -> i64 {