From: Jan "Yenya" Kasprzak Date: Thu, 11 Dec 2025 09:26:18 +0000 (+0100) Subject: Day 11: recursive solution X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=commitdiff_plain;h=5ade40833026828ed2c6822d1905004e054a305d;p=aoc.git Day 11: recursive solution --- diff --git a/2025/22alt.pl b/2025/22alt.pl new file mode 100755 index 0000000..1ee1b3d --- /dev/null +++ b/2025/22alt.pl @@ -0,0 +1,16 @@ +#!/usr/bin/perl -w + +use v5.42; + +my %g = map { my ($n, @x) = /\w+/g; $n => \@x } <>; + +sub walk($node, $goal, $seen = {}) { + return 1 if $node eq $goal; + return $seen->{$node} if defined $seen->{$node}; + $seen->{$node} += walk($_ => $goal, $seen) + for $g{$node}->@*; + return $seen->{$node} //= 0; +} + +say walk('svr' => 'fft') * walk('fft' => 'dac') * walk('dac' => 'out') + + walk('svr' => 'dac') * walk('dac' => 'fft') * walk('fft' => 'out');