]> www.fi.muni.cz Git - aoc.git/blob - 2022/16.pl
Day 8: dummy solution with off-by-one errors
[aoc.git] / 2022 / 16.pl
1 #!/usr/bin/perl -w
2
3 use v5.36;
4 use strict;
5 use experimental 'multidimensional';
6
7 my @m = map { chomp; [ split // ] } <>;
8 my $xmax = @{ $m[0] };
9 my $ymax = @m;
10
11 my $max = 0;
12 for my $y (1 .. $ymax-2) {
13 for my $x (1 .. $xmax-2) {
14         my $h = $m[$y][$x];
15         my $mul = 1;
16         my $count = 0;
17         for my $dx (reverse (0 .. $x-1)) {
18                 $count++;
19                 last if $m[$y][$dx] >= $h;
20         }
21         $mul *= $count;
22
23         $count = 0;
24         for my $dx ($x+1 .. $xmax-1) {
25                 $count++;
26                 last if $m[$y][$dx] >= $h;
27         }
28         $mul *= $count;
29
30         $count = 0;
31         for my $dy (reverse 0 .. $y-1) {
32                 $count++;
33                 last if $m[$dy][$x] >= $h;
34         }
35         $mul *= $count;
36
37         $count = 0;
38         for my $dy ($y+1 .. $ymax-1) {
39                 $count++;
40                 last if $m[$dy][$x] >= $h;
41         }
42         $mul *= $count;
43         # say "$x $y $h $mul";
44
45         $max = $mul if $max < $mul;
46
47 } }
48
49 say $max;