From: Jan "Yenya" Kasprzak Date: Sat, 6 Dec 2025 05:21:47 +0000 (+0100) Subject: Day 06: unusual math X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=commitdiff_plain;h=d9af65a51b9e28b0bef4a113b3983a6cf30f7e46;p=aoc.git Day 06: unusual math --- diff --git a/2025/11.pl b/2025/11.pl new file mode 100755 index 0000000..61233d6 --- /dev/null +++ b/2025/11.pl @@ -0,0 +1,23 @@ +#!/usr/bin/perl -w + +use v5.42; +use List::Util qw(sum); + +my @map = map { [ /\S+/g ] } <>; +my $xmax = $#{ $map[0] }; +my $ymax = $#map; + +my @sums; + +for my $x (0 .. $xmax) { + $sums[$x] = $map[$ymax][$x] eq '+' ? 0 : 1; + for my $y (0 .. $ymax-1) { + if ($map[$ymax][$x] eq '+') { + $sums[$x] += $map[$y][$x]; + } else { + $sums[$x] *= $map[$y][$x]; + } + } +} + +say sum @sums; diff --git a/2025/12.pl b/2025/12.pl new file mode 100755 index 0000000..4e735fa --- /dev/null +++ b/2025/12.pl @@ -0,0 +1,26 @@ +#!/usr/bin/perl -w + +use v5.42; + +my @map = map { chomp; [ split // ] } <>; +my $xmax = $#{ $map[0] }; +my $ymax = $#map; + +my ($sum, $imm, $op); + +for my $x (0 .. $xmax) { + if ($map[$ymax][$x] ne ' ') { + $op = $map[$ymax][$x]; + $imm = $op eq '*'; + } + my $expr = "\$imm $op= "; + $expr .= $map[$_][$x] for 0 .. $ymax-1; + if ($expr =~ /\d/) { + eval $expr; + } else { + $sum += $imm; + } +} +$sum += $imm; + +say $sum;