![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 24.05.2012
Сообщений: 2
|
![]()
Вероятно, многие из вас слышали о пошаговой стратегии Losers-V от компании Lavin Interactive. Если вы неравнодушны к этой игре, вы просто обязаны помочь рыцарю, который попал в трудное положение…
Итак, во время сражения рыцарь заметил на горизонте рогатого демона. Несомненно, необходимо нанести удар. Казалось бы, чего проще, скачи и руби! Но рыцарь — особый персонаж: сила его удара зависит от разбега, а длина разбега небезгранична. Помогите же ему решить эту хитрую тактическую задачу. Поле битвы представляет собой прямоугольник N × M клеток. В начале хода рыцарь стоит на клетке с координатами (x1, y1), а рогатый демон — на клетке (x2, y2). За один шаг рыцарь может перейти из клетки, где он находится, в одну из смежных по стороне клеток. Всего рыцарь может сделать не более L шагов. Во время разбега не разрешается покидать пределов поля битвы (это будет дезертирством) и заходить на клетку с рогатым демоном. После разбега рыцарь может ударить по демону, если находится в одной из смежных с ним по стороне клеток (удар не считается шагом). Сила удара равняется K + 1, где K — длина прямого участка, который проскакал рыцарь непосредственно перед ударом. Бить разрешается только один раз. Рыцарь очень просит вас сказать, какой максимальный урон он может нанести рогатому демону. Будем считать, что урон равен силе удара. Исходные данные Первая строка содержит 3 целых числа: N, M, L (1 ≤ N, M ≤ 100; 1 ≤ L ≤ 1000). Во второй строке записаны координаты рыцаря (x1, y1). В третьей — координаты рогатого демона (x2, y2). (1 ≤ x1, x2 ≤ N; 1 ≤ y1, y2 ≤ M). Координаты рыцаря и координаты рогатого демона различны. Результат Выведите единственное число — максимальный урон, который может причинить рыцарь демону. Пример исходные данные 3 4 4 1 1 3 4 результат 4 Подсказка Рыцарь сдвигается в точку (2, 1), затем в (2, 4) и бьёт. Длина разбега равна 3, соответственно сила удара — 4. Пытался одними только условиями, но в итоге вышло их многовато и я запутался... ![]() Последний раз редактировалось Stilet; 19.11.2013 в 13:02. |
![]() |
![]() |
![]() |
#2 |
Lawful Evil
Участник клуба
Регистрация: 13.05.2008
Сообщений: 1,208
|
![]()
Посмотреть, сколько от рыцаря до горизонтали/вертикали, на которой находится демон.
Оценить, на сколько удастся отойти от демона после достижения горизонтали/вертикали (с учетом оставшихся ходов и размера поля). Выбрать наиболее удаленную от демона позицию, нанести удар. Т.е., допустим, рыцарь на позиции 1,6; демон на позиции 4,2. Число ходов = 5, размер поля 5 на 9. Допустим, рыцарь поднимается до горизонтали с демоном, на это уходит 6 - 2 = 4 хода. Остался 1 ход, но отойти от демона он не может (координата <= 0 - вышел за поле), => урон = 4. Теперь допустим, что рыцарь продвигается до вертикали демона, на это уходит 4 - 1 = 3 хода. Осталось 2 хода. Если отойти - координаты будут 4,8, => урон = 7. При отдалении выхода за границы массива нет. Отсюда вывод: макс. урон = 7.
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c) |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 19.09.2013
Сообщений: 597
|
![]()
многабукаф не осилил...
получается что за L ходов, можно сдать назад на прямую и снести демону башню? с ОП К+1 ударом?
Сделал сам, помоги другому!
Что-то работает не так? Дебаггер в помощь!!! |
![]() |
![]() |
![]() |
#4 |
Lawful Evil
Участник клуба
Регистрация: 13.05.2008
Сообщений: 1,208
|
![]()
Ну да, суть в том, чтобы:
а) дойти до прямой, ведущей к демону б) сдать на все оставшиеся ходы в обратную сторону от демона в) посчитать расстояние до демона
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c) |
![]() |
![]() |
![]() |
#5 | |
Новичок
Джуниор
Регистрация: 24.05.2012
Сообщений: 2
|
![]() Цитата:
![]() |
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
задача по программированию | КсенияСергеева | Помощь студентам | 7 | 10.06.2013 01:53 |
задача по программированию | VeNdJaKe | Помощь студентам | 0 | 24.04.2012 10:45 |
Задача по программированию | arturjoshi | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 26.01.2012 20:59 |
Задача по программированию. | ALex25153 | Помощь студентам | 0 | 24.11.2011 21:33 |