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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.11.2008, 17:24   #1
Rusl92
Форумчанин
 
Аватар для Rusl92
 
Регистрация: 30.03.2008
Сообщений: 392
Плохо Задача: Малыш играет в морской бой

Не могли бы вы мне помочь
Малыш играет в "Морской бой"

Малыш играет в "Морской бой". Поле для игры представляет собой квадрат 10 x 10 клеток. На поле отмечены клетки, в которые Малыш уже стрелял. Однако пока он не попал ни в один корабль противника. Требуется определить максимальную длину корабля, который может поместиться в небитых клетках этого поля. Корабль представляет из себя прямоугольник ширины 1 и располагается горизонтально или вертикально. (Гарантируется, что на поле есть хотя бы одна небитая клетка.)

Входные данные:

Входной файл содержит 10 строк по 10 чисел в каждой, числа разделены пробелами. Число 1 означает, что в соответствующую клетку стреляли, число 0 – что в клетку не стреляли.

Выходные данные:

вывести одно число от 1 до 10 – максимальную возможную длину корабля.

Пример
input.txt


0 0 0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 1 0 0
0 0 0 0 0 0 1 0 0 0
0 0 0 0 0 1 0 0 0 0
0 0 0 0 1 0 0 0 0 0
0 0 0 1 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0

output.txt
9

Заранее спасибо!
Программирование - это великое искусство... Такое же как например и живопись!
Rusl92 вне форума Ответить с цитированием
Старый 30.11.2008, 23:39   #2
Викдон
Форумчанин
 
Аватар для Викдон
 
Регистрация: 11.11.2008
Сообщений: 161
По умолчанию

а вертикально можно распологать корабль?
Викдон вне форума Ответить с цитированием
Старый 30.11.2008, 23:39   #3
Rusl92
Форумчанин
 
Аватар для Rusl92
 
Регистрация: 30.03.2008
Сообщений: 392
По умолчанию

я уже решил давно)
Программирование - это великое искусство... Такое же как например и живопись!
Rusl92 вне форума Ответить с цитированием
Старый 01.12.2008, 13:27   #4
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,551
По умолчанию

Примерно так решили?
Код:
Max := 0;
for I := 1 to 10 do
begin
  CntI := 0;
  CntJ := 0;
  for J := 1 to 10 do
  begin
    if M[I,J] <> 0 then
    begin
      if CntI > Max then Max := CntI;
      CntI := 0;
    end else Inc (CntI);
    if M[J,I] <> 0 then
    begin
      if CntJ > Max then Max := CntJ;
      CntJ := 0;
    end else Inc (CntJ);
  end; {for}
  if CntI > Max then Max := CntI;
  if CntJ > Max then Max := CntJ;
end; {for}
Arigato на форуме Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Морской бой flutt C++ Builder 10 12.10.2017 16:57
Морской бой flutt Gamedev - cоздание игр: Unity, OpenGL, DirectX 6 17.04.2008 22:40
Морской бой на Delphi Rage XIII Помощь студентам 8 12.01.2008 22:30
Морской бой yulia Помощь студентам 1 28.04.2007 22:12
игра морской бой PAVEL315 Общие вопросы Delphi 2 21.11.2006 20:54