5 use experimental 'multidimensional';
6 use List::Util qw(none);
8 my @m = map { chomp; [ split // ] } <>;
13 for my $y (1 .. $ymax-2) {
14 for my $x (1 .. $xmax-2) {
19 last if $m[$_->[1]][$_->[0]] >= $m[$y][$x];
23 my $score = $count->( map { [ $_, $y ] } reverse 0 .. $x-1 )
24 * $count->( map { [ $_, $y ] } $x+1 .. $xmax-1)
25 * $count->( map { [ $x, $_ ] } reverse 0 .. $y-1)
26 * $count->( map { [ $x, $_ ] } $y+1 .. $ymax-1)
28 $max = $score if $max < $score;