X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;f=2023%2F27.pl;fp=2023%2F27.pl;h=ab6cbcd40579823048fee4da74d9897b0d97b3be;hb=9df28e43f93ba69cba3f7f56dbb1b77235ad7413;hp=0000000000000000000000000000000000000000;hpb=27d0c1a07960f4080fd3032e97f25f4ad02b0e73;p=aoc.git diff --git a/2023/27.pl b/2023/27.pl new file mode 100755 index 0000000..ab6cbcd --- /dev/null +++ b/2023/27.pl @@ -0,0 +1,31 @@ +#!/usr/bin/perl -w + +use v5.38; + +my @map = map { chomp; [ split // ] } <>; +my $xmax = $#{ $map[0] }; +my $ymax = $#map; + +my $sum; +my $retry = 1; +while ($retry) { + $retry = 0; +for my $y (1 .. $ymax) { + for my $x (0 .. $xmax) { + if ($map[$y][$x] eq 'O' && $map[$y-1][$x] eq '.') { + $map[$y-1][$x] = 'O'; + $map[$y][$x] = '.'; + $retry = 1; + } + } +} +} + +say join('', @$_) for @map; + +for my $y (0 .. $ymax) { + for my $x (0 .. $xmax) { + $sum += $ymax + 1 - $y if $map[$y][$x] eq 'O'; + } +} +say $sum;