Problem:
Maximum Sum Sequence II

与えられた整数の行列

a1,1 a1,2 ... a1,n
a2,1 a2,2 ... a2,n
:
an,1 an,2 ... an, n

で、縦・横方向に１つ以上連続した項（部分行列）の和の最大値を出力して終了するプログラムを作成して下さい。

Input

入力データは以下の形式で与えられます。

n
a1,1 a1,2 ... a1,n
a2,1 a2,2 ... a2,n
:
an,1 an,2 ... an, n

n は 1 以上 100 以下、ai,j は -10000 以上 10000 以下です。

Output

最大値を 1 行に出力して下さい。

Sample Input 1

3
1 -2 3
-4 5 6
7 8 -9

Output for the Sample Input 1

16

この入力の場合、以下の部分行列の項の和が最大となります。

-4 5
7 8

Sample Input 2

4
1 3 -9 2
2 7 -1 5
-8 3 2 -1
5 0 -3 1

Output for the Sample Input 2

15

この入力の場合、以下の部分行列の項の和が最大となります。

7 -1 5
3 2 -1

Solution in PHP (judge verdict: Wrong Answer)

<?php

function main() {
    $n = trim(fgets(STDIN));
    $data = [];
    for ($i = 0; $i < $n; $i++) {
        $data[$i] = explode(' ', trim(fgets(STDIN)));
    }

    $max = 0;

    for ($i = 0; $i < $n; $i++) {
        for ($j = 0; $j < $n; $j++) {
            for ($k = $i; $k < $n; $k++) {
                for ($l = $j; $l < $n; $l++) {
                    $sum = 0;
                    for ($a = $i; $a <= $k; $a++) {
                        for ($b = $j; $b <= $l; $b++) {
                            if (isset($data[$a][$b])) {
                                $sum += $data[$a][$b];
                            } else {
                                sleep(10);
                            }
                        }
                    }
                    $max = max($sum, $max);
                }
            }
        }
    }

    echo $max . "\n";
}

main();