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

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

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

> Помогите решить задачу, задача школьного конкурса (а мы дальше массивов не проходили так что ж
Виликан
сообщение 4.10.2011 16:57
Сообщение #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

Сообщение отредактировано: Виликан - 4.10.2011 17:03
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Lapp
сообщение 5.10.2011 3:41
Сообщение #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 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


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

 



- Текстовая версия 21.06.2025 10:38
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"