Comunque alla fine ho tradotto in Python l'idea che avevo, ma sembra dannatamente lenta...

In fondo era solo un metodo "velocizzato" per analizzare tutti i possibili sottoquadrati, ma l'ho lanciato oltre venti minuti fa ed è ancora lì che gira, quindi non so se vale la pena di tradurlo anche in C: dubito di riuscire anche lontanamente a raggiungere gugoXX, pure su un computer serio.

Magari dopo provo a farlo lo stesso e vediamo che schifezza ne esce fuori.
ciao
EDIT: come non detto, ha appena finito...

Ci ha messo appena 35 minuti.
Codice:
Lettura completata in 2500.54476273 millisecondi.
Caricata una matrice 200x200.
Inizio la ricerca... completata in 2115368.25458 millisecondi.
Risultato: posizione (94, 60) larghezza 56 somma 3185
Il codice è il seguente:
Codice:
from time import clock
def read(filename):
f = open(filename)
list = []
first = f.readline()
side = int(first[2 : len(first)-3])
for line in f:
tmp = []
for w in line.split():
tmp.append(int(w))
list.append(tmp)
f.close()
return side, list
def sumrange(a, x1, y1, x2, y2):
s = 0
for y in xrange(y1, y2):
for x in xrange(x1, x2):
s += a[y][x]
return s
def contest5b(w, a):
max_side = 1
max_coord = (0, 0)
max_sum = 0
side = 1
while side <= w:
x = 0
while (x + side) <= w:
tmp = sumrange(a, x, 0, x + side, side)
if (tmp > max_sum):
max_coord = (x, 0)
max_side = side
max_sum = tmp
y = 0
while (y + side) < w:
for i in xrange(side):
tmp += (a[y+side][x+i] - a[y][x+i])
if (tmp > max_sum):
max_coord = (x, y+1)
max_side = side
max_sum = tmp
y += 1
x += 1
side += 1
return max_coord, max_side, max_sum
t1 = clock()
w, a = read("Matrix2.txt")
t2 = clock()
print "Lettura completata in", (t2-t1)*1000.0, "millisecondi."
print "Caricata una matrice %dx%d." % (w, w)
print "Inizio la ricerca...",
t1 = clock()
coord, side, sum = contest5b(w, a)
t2 = clock()
print "completata in", (t2-t1)*1000.0, "millisecondi."
print
print "Risultato: posizione", coord, "larghezza", side, "somma", sum
Considerando che il mio Contest 4 in Python ci ha messo 13 minuti sulla mia macchina e 38 secondi su quella di grigor91, questo mio Contest 5B dovrebbe impiegare sulla sua macchina la bellezza di 1 minuto e 42 secondi. Considerando anche che il Contest 4 tradotto in C sono riuscito a farlo scendere a 4 minuti su questo catorcio, sul PC di grigor91 il Contest 5B dovrebbe arrivare intorno a... 30 secondi.