Ну, сразу видно, что в их ответе (или исходных данных) есть ошибка:
Дают таблицу 5х4, а в ответе среди координат встречаются и (0) и (5), (0) и (4) - или таблица должна быть 6х5 или координаты должны быть
0 0 1 1
1 1 4 3
Код:
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils;
var FieldArray:array of array of integer;
rectArray:array of array[0..3] of integer;
M,N,K:Integer;
i,j,l:Integer;
f:TextFile;
begin
AssignFile(f,'input.txt');
Reset(f);
Read(F, N, M);
Read(F,k);
SetLength(FieldArray,M,N);
for j:=1 to N do
for i:=1 to M do
read(f,FieldArray[i-1][j-1]);
SetLength(rectArray,K);
for l:=0 to K-1 do
begin
rectArray[l][0]:=M-1; rectArray[l][1]:=0;
rectArray[l][2]:=0; rectArray[l][3]:=N-1;
for j:=0 to N-1 do
begin
for i:=0 to M-1 do
begin
if FieldArray[i,j]=l+1 then
begin
if rectArray[l][0]>i then
rectArray[l][0]:=i;
if rectArray[l][0]<j then
rectArray[l][1]:=j;
if rectArray[l][2]<i then
rectArray[l][2]:=i;
if rectArray[l][3]>j then
rectArray[l][3]:=j;
end;
end;
end;
end;
closefile(f);
AssignFile(f,'output.txt');
ReWrite(f);
for l:=0 to K-1 do
begin
write(f,inttostr(rectArray[l][0])+' '+inttostr(N-1-rectArray[l][1])+' '+inttostr(rectArray[l][2]+1)+' '+inttostr(N-rectArray[l][3]));
writeln(f);
end;
closefile(f);
end.
Мой вариант
