open(FIL,"prob18data.txt"); @lines = ; close(FIL); @lines = reverse(@lines); $i = 0; @max; @prev = split(' ',$lines[0]); for ($i = 0; $i <= $#prev; $i++) { $max[0][$i] = $prev[$i]; } for ($i = 1; $i <= $#lines; $i++) { $l = $lines[$i]; @nums = split(' ',$l); for ($j = 0; $j <= $#nums; $j++) { $left = int($nums[$j]) + int($max[$i-1][$j]); $right = int($nums[$j]) + int($max[$i-1][$j + 1]); if ($left > $right) { $max[$i][$j] = $left; } else { $max[$i][$j] = $right; } } @prev = @nums; } print "-" x 50 . "\n"; @prev = split(' ',$lines[0]); $wide = $#prev; $deep = $#lines; for ($i = 0; $i <= $wide; $i++) { for ($j = 0; $j <= $deep; $j++) { print $max[$i][$j] . ' '; } print "\n"; }