Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.12.2011, 07:32   #1
Ильнур7
Новичок
Джуниор
 
Регистрация: 07.12.2011
Сообщений: 2
По умолчанию Олимпиада

Наибольший квадрат

Входной файл sqr.in
Выходной файл sqr.out
Ограничение по времени 1 секунда на тест
Ограничение по памяти 16 мегабайт

Денис очень любит математику и считает ее самым важным предметом в школе. На уроке биологии Денис начертил прямоугольник размером n на m клеток, пронумеровал его по строкам и столбцам. И случайным образом заполнил все клетки нулями и единицами. Далее Денис искал «максимально получившийся» квадрат, состоящий только из цифр 1.
Ваша задача в таблице c N строками и M столбцами, состоящей из 0 и 1 найти левый верхний угол квадратного блока максимального размера, состоящего только из единиц. Если таких квадратов несколько, то следует выбрать самый верхний. Если в одной строке «начинаются» несколько квадратов одинаково максимального размера, то следует выбрать наименьший столбец. Например, если квадраты одинакового размера начинаются в точках (2, 20) и (20, 2), то в ответ следует написать 2 20.

Формат входного файла.
В первой строке входного файла через пробел записано два натуральных числа N и M (N,M<= 1000).
Далее записано N строк по M чисел разделенных пробелами.

Формат выходного файла.
В выходной файл вывести координаты левого верхнего угла квадрата наибольшего размера.

Примеры файлов входных и выходных данных:

Код:
sqr.in	                   Sqr.out
3 3                          1 2
0 1 1
1 1 1
0 1 0

Последний раз редактировалось Serge_Bliznykov; 08.12.2011 в 10:48.
Ильнур7 вне форума Ответить с цитированием
Старый 08.12.2011, 11:41   #2
Ильнур7
Новичок
Джуниор
 
Регистрация: 07.12.2011
Сообщений: 2
По умолчанию

помогиите пожалуйста
Ильнур7 вне форума Ответить с цитированием
Старый 08.12.2011, 18:34   #3
New man
Форумчанин
 
Регистрация: 24.01.2011
Сообщений: 774
По умолчанию

Бл****!!!1
На олимпиаде сам работай, она ваще простая я за 20 мин сделал
a.k.a. Angelicos Phosphoros
Мой сайт
New man вне форума Ответить с цитированием
Старый 08.12.2011, 18:35   #4
New man
Форумчанин
 
Регистрация: 24.01.2011
Сообщений: 774
По умолчанию

Код:
program Z____;
type TQuad = record 
        width,x,y:intger;
   end;
var matr: array of array of TQuad;
function PrQuad(x,y:intger):TQuad;
label pr;
var i,j:inteer;
    g:integer;
begin
   g:=0;
   result.x:=-1;
   result.y:=-1;
   result.w:=-1;
  if matr[x,y]=0 then exit;
   while (x+g<m-1)and (y+g<n-1) do
          begin
             inc(g);
             for i:=x to x+g do
             for j:=y to g+y do
                 if matr[i,j]=0 then
                       begin
                          dec(g);
                          goto Pr;
                       end;
end;
   Pr: result.x:=x,REsult.y:=y, Result.w:=g;
end;

end;
a.k.a. Angelicos Phosphoros
Мой сайт

Последний раз редактировалось New man; 08.12.2011 в 18:49.
New man вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
олимпиада альбертоо Паскаль, Turbo Pascal, PascalABC.NET 14 06.12.2011 03:28
олимпиада lost9306 Паскаль, Turbo Pascal, PascalABC.NET 1 17.04.2010 13:10
Олимпиада по ИТ Telon Помощь студентам 7 25.03.2010 19:29
Олимпиада Patrick Паскаль, Turbo Pascal, PascalABC.NET 12 12.10.2009 13:36