Какой алгоритм???
Тут тупое вычисление расстояний между всеми точками и выбор максимального значения. Расстояние высчитывается по формуле пифагора: d := sqrt(sqr(x1-x2) + sqr(y1-y2));
Дальше перебираешь все точки массива попарно и считаешь расстояние между ними.
Код:
uses math;
var
i, j : integer;
begin
d := 0;
for i := 1 to 39 do
for j := i+1 to 40 do
d := max(d,sqrt(sqr(M[i][x]-M[j][x]) + sqr(M[i][y]-M[j][y])));
end;