]> www.fi.muni.cz Git - aoc.git/blobdiff - 2021/08.pl
Moved 2021 to a subdir
[aoc.git] / 2021 / 08.pl
diff --git a/2021/08.pl b/2021/08.pl
new file mode 100755 (executable)
index 0000000..2315874
--- /dev/null
@@ -0,0 +1,26 @@
+#!/usr/bin/perl -w
+
+use v5.16;
+
+$/ = "\n\n";
+
+my @drawn = split/[,\s]/, <>;
+my @boards = <>;
+my $remaining = @boards;
+
+for my $d (@drawn) {
+       for my $board (@boards) {
+               $board =~ s/\b$d\b/' ' x length $d/e;
+               if ($board =~ / {14}/
+                       || $board =~ /\s{3}(?:.{12}\s{3}){4}/xms) {
+                       if (--$remaining) {
+                               $board = 'x';
+                               next;
+                       }
+                       $board =~ s/(?<=\d)\s+(?=\d)/+/gxms;
+                       say eval "$d*($board)";
+                       exit;
+               }
+       }
+}
+