#!/usr/bin/perl open(FIL,"prob11data.txt"); @lines = ; close(FIL); #first, stuff the matrix $h = $#lines; @c = split(' ',$lines[0]); $w = $#c; @mat; for ($i = 0; $i < $h; $i++) { @nums = split(' ',$lines[$i]); for ($j = 0; $j < $w; $j++) { $mat[$i][$j] = $nums[$j]; } } $maxprod = 0; for ($i = 0; $i < $h; $i++) { for ($j = 0; $j < $w - 4; $j++) { $n1 = $mat[$i][$j]; $n2 = $mat[$i][$j+1]; $n3 = $mat[$i][$j+2]; $n4 = $mat[$i][$j+3]; $prod = $n1 * $n2 * $n3 * $n4; if ($prod > $maxprod) { $maxprod = $prod; } if ($i < $h - 4) { $n2 = $mat[$i+1][$j+1]; $n3 = $mat[$i+2][$j+2]; $n4 = $mat[$i+3][$j+3]; } $prod = $n1 * $n2 * $n3 * $n4; if ($prod > $maxprod) { $maxprod = $prod; } if ($i > 4) { $n2 = $mat[$i-1][$j+1]; $n3 = $mat[$i-2][$j+2]; $n4 = $mat[$i-3][$j+3]; } $prod = $n1 * $n2 * $n3 * $n4; if ($prod > $maxprod) { $maxprod = $prod; } } } for ($i = 0; $i < $w; $i++) { for ($j = 0; $j < $h - 4; $j++) { $n1 = $mat[$j][$i]; $n2 = $mat[$j][$i+1]; $n3 = $mat[$j][$i+2]; $n4 = $mat[$j][$i+3]; $prod = $n1 * $n2 * $n3 * $n4; if ($prod > $maxprod) { $maxprod = $prod; } if ($i < $w - 4) { $n2 = $mat[$j+1][$i+1]; $n3 = $mat[$j+2][$i+2]; $n4 = $mat[$j+3][$i+3]; } $prod = $n1 * $n2 * $n3 * $n4; if ($prod > $maxprod) { $maxprod = $prod; } if ($i > 4) { $n2 = $mat[$j-1][$i+1]; $n3 = $mat[$j-2][$i+2]; $n4 = $mat[$j-3][$i+3]; } $prod = $n1 * $n2 * $n3 * $n4; if ($prod > $maxprod) { $maxprod = $prod; } } } print $maxprod . "\n";