![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
![]() Тренеруюсь в общем в решении задачек, не могу понять в одной что не так
вот задачка http://acmp.ru/?main=task&id_task=193 вот решение мое [code]затер что бы на олимпиадах гугл не помог)[/quote] Проверял у себя на придуманных тестах Цитата:
Последний раз редактировалось ALexandr555, 07.11.2012 в 16:44. |
#2
|
||||
|
||||
![]() Ну, сразу видно, что в их ответе (или исходных данных) есть ошибка:
Дают таблицу 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. Мой вариант ![]() Последний раз редактировалось YVitaliy, 07.11.2012 в 13:06. |
#3
|
||||
|
||||
![]() Мое решение оказалось правильным похоже перепутал пути что ли когда отправлял...
YVitaliy у твоего решения на ихних тестах на втором ошибка пример у них правильный т.к. нижний угол берется на единицу меньше позиции, то есть самый край |