···
let assert [from, to] = i |> string.trim |> string.split("-")
let assert Ok(from) = int.parse(from)
let assert Ok(to) = int.parse(to)
26
-
#(from / 100_000_000, to / 100_000_000)
26
+
// #(from / 100_000_000, to / 100_000_000)
···
|> set.fold(#(range, prev_seen_ranges), fn(acc, seen_range) {
let #(range, seen_ranges) = acc
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),
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),
int.compare(range.0, seen_range.0),
int.compare(range.1, seen_range.1),
···
#(range.0, seen_range.1),
set.delete(seen_ranges, seen_range),
95
-
Gt, Gt, Lt, Gt -> #(
95
+
Gt, Gt, Lt, Gt | Gt, Gt, Eq, Gt -> #(
#(seen_range.0, range.1),
97
-
set.delete(seen_ranges, seen_range),
99
-
Gt, Gt, Eq, Gt -> #(
100
-
#(seen_range.0, range.0),
set.delete(seen_ranges, seen_range),
_, _, _, _ -> #(range, seen_ranges)
···
|> set.fold(0, fn(acc, range) { acc + range.1 - range.0 + 1 })