]> www.fi.muni.cz Git - aoc.git/commitdiff
Day 7: straightforward for Saturday
authorJan "Yenya" Kasprzak <kas@fi.muni.cz>
Sat, 7 Dec 2024 05:24:55 +0000 (06:24 +0100)
committerJan "Yenya" Kasprzak <kas@fi.muni.cz>
Sat, 7 Dec 2024 05:24:55 +0000 (06:24 +0100)
2024/13.pl [new file with mode: 0755]
2024/14.pl [new file with mode: 0755]

diff --git a/2024/13.pl b/2024/13.pl
new file mode 100755 (executable)
index 0000000..17f5a40
--- /dev/null
@@ -0,0 +1,24 @@
+#!/usr/bin/perl -w
+
+use v5.40;
+
+my $sum;
+sub test {
+       my ($res, $v1, $v2, @rest) = @_;
+       if (defined $v2) {
+               test($res, $v1+$v2, @rest);
+               test($res, $v1*$v2, @rest);
+       } else {
+               if ($v1 == $res) {
+                       $sum += $res;
+                       die;
+               }
+       }
+}
+
+while (<>) {
+       my @v = /\d+/g;
+       eval { test(@v); };
+}
+
+say $sum;
diff --git a/2024/14.pl b/2024/14.pl
new file mode 100755 (executable)
index 0000000..40faef1
--- /dev/null
@@ -0,0 +1,25 @@
+#!/usr/bin/perl -w
+
+use v5.40;
+
+my $sum;
+sub test {
+       my ($res, $v1, $v2, @rest) = @_;
+       if (defined $v2) {
+               test($res, $v1+$v2, @rest);
+               test($res, $v1*$v2, @rest);
+               test($res, "$v1$v2", @rest);
+       } else {
+               if ($v1 == $res) {
+                       $sum += $res;
+                       die;
+               }
+       }
+}
+
+while (<>) {
+       my @v = /\d+/g;
+       eval { test(@v); };
+}
+
+say $sum;