aboutsummaryrefslogtreecommitdiff
path: root/aoc2023-racket/day-25/day-25.rkt
diff options
context:
space:
mode:
Diffstat (limited to 'aoc2023-racket/day-25/day-25.rkt')
-rw-r--r--aoc2023-racket/day-25/day-25.rkt43
1 files changed, 0 insertions, 43 deletions
diff --git a/aoc2023-racket/day-25/day-25.rkt b/aoc2023-racket/day-25/day-25.rkt
deleted file mode 100644
index aa32e43..0000000
--- a/aoc2023-racket/day-25/day-25.rkt
+++ /dev/null
@@ -1,43 +0,0 @@
-#lang racket
-
-(require advent-of-code
- threading
- graph)
-
-(define input
- (~> (fetch-aoc-input (find-session) 2023 25 #:cache #true)
- (string-split "\n")
- (map (curryr string-split ": ") _)))
-
-(define all-wires
- (for*/list ([wire-diagram (in-list input)] [devices (in-list (string-split (second wire-diagram)))])
- (list (car wire-diagram) devices)))
-
-;; instead of trying to solve the minimum cut problem, I generated the graph and
-;; rendered it in graphviz:
-
-; (define out (open-output-file "graphviz"))
-; (~> all-wires
-; unweighted-graph/undirected
-; graphviz
-; (display out))
-; (close-output-port out)
-
-;; the bottleneck is very obvious on the graph --
-;; there's two large clusters of nodes, connected by just three edges
-;;
-;; from the graphviz output, the three critical wires are
-;; cpq-hlx
-;; hqp-spk
-;; chr-zlx
-
-(define remove-these-three '(("cpq" "hlx") ("hqp" "spk") ("chr" "zlx")))
-(define cut-wires
- (for/list ([wire (in-list all-wires)] #:unless (member (sort wire string<?) remove-these-three))
- wire))
-
-(~> cut-wires
- unweighted-graph/undirected
- scc
- (map length _)
- (apply * _)) \ No newline at end of file