Показать сообщение отдельно
  #2  
Старый 07.11.2012, 12:39
Аватар для YVitaliy
YVitaliy YVitaliy вне форума
Местный
 
Регистрация: 14.12.2011
Сообщения: 481
Версия Delphi: Borland Delphi7
Репутация: 17
По умолчанию

Ну, сразу видно, что в их ответе (или исходных данных) есть ошибка:
Дают таблицу 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.

Мой вариант
Ответить с цитированием