Énoncé

Étant donné une matrice d'entiers positifs ou negatifs, trouver la sous-matrice non vide (découpage d'un rectangle dans la matrice) dont la somme de tous les éléments est la plus grande possible.

Entrée

L'entrée contient sur une première ligne le nombre de lignes p dans la matrice, sur une deuxième ligne le nombre de colonnes q, puis sur p lignes la description de la matrice, les entiers étant séparés par des espaces. Les dimensions de la matrice n'excéderont pas 30, la somme de ses éléments ne pourra pas causer de problème d'overflow.

Sortie

La sortie contient la somme maximale atteinte par une sous-matrice, suivie d'un retour à la ligne.

Exemples

EntréeSortie

Squelette CamlLight

Squelette OCaml