Массивы двумерные Дана квадратная таблица А(N, N), элементами которой являются нули и единицы. Установите наличие в ней квадрата, стороны которого состоят из М единиц (M<=N) и параллельны строкам или столбцам таблицы. Если такой квадрат найдется, то нужно вывести координаты его верхнего левого угла
amega
3.02.2009 2:35
ет задача дет на олимпиаде была (я не знаю где) помню моему соседу с универа дали такуюже (ток там найти самый большой квадрат из нулей или единиц) он спросил где бырете задачи преподаватель ответив это олимпиадные....
можеш поискать ее решение... оно должно быть
BAEVIK
3.02.2009 2:50
Цитата(amega @ 2.02.2009 22:35)
ет задача дет на олимпиаде была (я не знаю где) помню моему соседу с универа дали такуюже (ток там найти самый большой квадрат из нулей или единиц) он спросил где бырете задачи преподаватель ответив это олимпиадные....
можеш поискать ее решение... оно должно быть
Я поищу но ты тож если найдёш напиши !!!
amega
3.02.2009 3:13
Цитата
Я поищу но ты тож если найдёш напиши !!!
да я если щас не засну то зделаю
BAEVIK
3.02.2009 3:50
Цитата(amega @ 2.02.2009 23:13)
да я если щас не засну то зделаю
good
BAEVIK
4.02.2009 17:34
Чевота не нашёл такой задачи помаги плиз !!!
Lapp
4.02.2009 18:47
Вот, можно так, например. Правда, далеко не оптимально
const
n=10;
a: array[1..n,1..n]of0..1=(
(1,0,1,0,0,0,0,1,0,0),
(1,0,1,0,0,0,0,1,0,0),
(0,1,1,1,1,1,1,1,0,1),
(1,0,1,0,0,0,0,1,0,0),
(1,0,1,0,1,1,0,1,1,1),
(1,0,1,0,0,0,0,1,0,0),
(1,0,1,0,1,0,0,1,0,0),
(1,0,1,1,1,1,1,1,0,1),
(1,0,1,0,0,0,0,1,0,0),
(1,0,1,0,0,1,0,1,1,0)
);
var
i,j,m: integer;
function Square(x,y: integer): boolean;
function Sum(p,q,u,v: integer): integer;
var
s,i: integer;
begin
s:=0;
for i:=0to m-1do s:=s+a[p+i*u,q+i*v];
Sum:=s
end;
begin
Square:=(Sum(x,y,1,0)+Sum(x,y,0,1)+Sum(x,y+m-1,1,0)+Sum(x+m-1,y,0,1)=4*m)
end;
begin
m:=6;
for i:=1to n-m+1dofor j:=1to n-m+1doif Square(i,j) then WriteLn('Sqaure found at ',i,',',j)
end.
М
BAEVIK, будь добр, прочитай п.п.4, 6 и 7 Правил Форума
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.