IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Помогите решить задачу, задача школьного конкурса (а мы дальше массивов не проходили так что ж
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 5
Пол: Мужской
Реальное имя: Виталий

Репутация: -  0  +


4. Морской бой. Параллельно береговой линии в море стоит вражеский флот. Полоса, в которой расположен флот, условно разбита на N квадратов. На главном корабле нашего флота находится секретное орудие, которое может нанести удар сразу по k смежным (т.е. подряд идущим) квадратам. Все вражеские корабли, находящиеся в пораженных квадратах будут уничтожены. К сожалению, у секретного орудия есть всего один заряд, поэтому требуется всего одним выстрелом нанести максимальный урон противнику.
Задание. Напишите программу battle, определяющую максимальное количество кораблей, которое может быть уничтожено одним выстрелом.
Входные данные. В первой строке записаны два целых числа N и k (1<=k<=N< 100000). Во второй строке задаются N целых чисел Ai, каждое из которых определяет количество кораблей в соответствующем квадрате полосы (0 < Ai < 10000).
Выходные данные. В единственной строке выведите наибольшее количество кораблей, которые могут быть уничтожены.
Примеры входных и выходных данных

ввод вывод
7 3 . 1
3212321 .



Добавлено через 1 мин.
если кому лень писать решение, то хоть натолкните на мысль... пожалуйста yes2.gif

Сообщение отредактировано: Виликан -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(Виликан @ 4.10.2011 16:57) *
если кому лень писать решение, то хоть натолкните на мысль...
Дело не в лени )). Помочь можно, не хочется писать все за тебя.

А какая тут может быть "идея"? Тут все прозрачно..
Сначала считаешь сумму s по первым k квадратам, также присваиваешь ее переменной max. Потом делаешь цикл от i=k+1 до n - вычитаешь из s содержимое i-k квадрата и прибавляешь содержимое i квадрата. Если s больше max, то кладешь s в max. Вот и все.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3





Группа: Пользователи
Сообщений: 5
Пол: Мужской
Реальное имя: Виталий

Репутация: -  0  +


Спасибо большое! Ну для вас это конечно просто и понятно, но мне, человеку который в сумме месяца 3 учит паскаль это не всегда "прозрачно"...
Еще раз спасибо.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Нет проблем, заходи еще. Если ты не за готовым решением приходишь - мы поможем.
По сути, то, что я написал выше, годится не только для Паскаля - это алгоритм. На всякий случай пишу то же самое на Паскале - проверь себя:
  s:= 0;
for i:=1 to k do s:= s+a[i];
max:= s;
for i:= k+1 to n do begin
s:= s - a[i-k] + a[i];
if s>max then max:=s
end;


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 10.05.2024 8:01
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name