From bbf615a66d1814ff196313b206cd3bcc239079c1 Mon Sep 17 00:00:00 2001 From: Andreas Grois Date: Sun, 22 Dec 2024 23:23:13 +0100 Subject: Complete Day 17 Part 1 --- Day17.lean | 12 ++++++++++++ Main.lean | 2 ++ 2 files changed, 14 insertions(+) diff --git a/Day17.lean b/Day17.lean index 4bddc1c..11a92f2 100644 --- a/Day17.lean +++ b/Day17.lean @@ -389,6 +389,18 @@ decreasing_by have : closedSet.size < (Finite.cardinality (ClosedSetEntry heatLossMap)) := Std.HashSet.size_lt_finite_cardinality_of_not_mem closedSet ⟨_,h₂⟩ omega +def part1 (heatLossMap : HeatLossMap) : Option Nat := + heatLossMap.findPath (OpenSet.start heatLossMap) Std.HashSet.empty + +------------------------------------------------------------------------------------ + +open DayPart +instance : Parse ⟨17, by simp⟩ (ι := HeatLossMap) where + parse := (Except.mapError ToString.toString) ∘ parse + +instance : Part ⟨17,_⟩ Parts.One (ι := HeatLossMap) (ρ := Nat) where + run := part1 + ------------------------------------------------------------------------------------ private def testData := "2413432311323 diff --git a/Main.lean b/Main.lean index cea5348..5f8bec6 100644 --- a/Main.lean +++ b/Main.lean @@ -15,6 +15,7 @@ import «Day13» import «Day14» import «Day15» import «Day16» +import «Day17» open DayPart @@ -59,6 +60,7 @@ def try_run_day_part (day : Days) (part : Parts) (data : String) : IO String := | ⟨15,_⟩, Parts.Two => try_run_day_part_impl ⟨15,_⟩ Parts.Two data | ⟨16,_⟩, Parts.One => try_run_day_part_impl ⟨16,_⟩ Parts.One data | ⟨16,_⟩, Parts.Two => try_run_day_part_impl ⟨16,_⟩ Parts.Two data + | ⟨17,_⟩, Parts.One => try_run_day_part_impl ⟨17,_⟩ Parts.One data | _, _ => throw $ IO.userError "The requested combination of day/part has not been implemented yet." def main (parameters : List String): IO Unit := do -- cgit v1.2.3