For each combination of upper left and lower right corners { // O(N^4) Calculate the sum; // O(N^2) If the new sum is greater than old maximum, remember it. }

A question very similar to this in one dimension has an O(N) solution. That makes me think there must be an O(N^2) one for this. [ October 15, 2007: Message edited by: Ryan McGuire ]

I’ve looked at a lot of different solutions, and in my humble opinion Aspose is the way to go. Here’s the link: http://aspose.com