my solutions to advent of code
aoc advent-of-code

someone should kill me for this day 5 2025

aylac.top 6c926fcb 1185346f

verified
Changed files
+16 -20
2025
5
gleam
+16 -20
2025/5/gleam/src/main.gleam
··· 15 15 fresh_ranges 16 16 |> string.trim 17 17 |> string.split("\n") 18 - |> list.reverse 19 - |> list.drop(5) 20 - |> list.take(12) 21 - |> list.reverse 18 + // |> list.reverse 19 + // |> list.drop(5) 20 + // |> list.take(12) 21 + // |> list.reverse 22 22 |> list.map(fn(i) { 23 23 let assert [from, to] = i |> string.trim |> string.split("-") 24 24 let assert Ok(from) = int.parse(from) 25 25 let assert Ok(to) = int.parse(to) 26 - #(from / 100_000_000, to / 100_000_000) 27 - // #(from, to) 26 + // #(from / 100_000_000, to / 100_000_000) 27 + #(from, to) 28 28 }) 29 29 let available = 30 30 available ··· 60 60 prev_seen_ranges 61 61 |> set.fold(#(range, prev_seen_ranges), fn(acc, seen_range) { 62 62 let #(range, seen_ranges) = acc 63 - echo #( 64 - range, 65 - seen_range, 66 - int.compare(range.0, seen_range.0), 67 - int.compare(range.1, seen_range.1), 68 - int.compare(range.0, seen_range.1), 69 - int.compare(range.1, seen_range.0), 70 - ) 63 + // echo #( 64 + // range, 65 + // seen_range, 66 + // int.compare(range.0, seen_range.0), 67 + // int.compare(range.1, seen_range.1), 68 + // int.compare(range.0, seen_range.1), 69 + // int.compare(range.1, seen_range.0), 70 + // ) 71 71 case 72 72 int.compare(range.0, seen_range.0), 73 73 int.compare(range.1, seen_range.1), ··· 92 92 #(range.0, seen_range.1), 93 93 set.delete(seen_ranges, seen_range), 94 94 ) 95 - Gt, Gt, Lt, Gt -> #( 95 + Gt, Gt, Lt, Gt | Gt, Gt, Eq, Gt -> #( 96 96 #(seen_range.0, range.1), 97 - set.delete(seen_ranges, seen_range), 98 - ) 99 - Gt, Gt, Eq, Gt -> #( 100 - #(seen_range.0, range.0), 101 97 set.delete(seen_ranges, seen_range), 102 98 ) 103 99 _, _, _, _ -> #(range, seen_ranges) ··· 109 105 True -> seen_ranges 110 106 } 111 107 }) 112 - echo ranges 108 + // echo ranges 113 109 ranges 114 110 |> set.fold(0, fn(acc, range) { acc + range.1 - range.0 + 1 }) 115 111 |> int.to_string