Предмет: Информатика, автор: kadzo

Джимми и Бобби играют в игру в школе волшебства Хогвартс. Они стоят на расстоянии L
L
футов друг от друга. Каждую минуту Джимми использует свою волшебную палочку, чтобы создать и бросить один волшебный шар в сторону Бобби, который движется со скоростью X
X
футов в минуту. Если магический шар находится не более чем в D
D
футах от Бобби, он использует свою палочку, чтобы поразить этот шар смертельным заклинанием, которое мгновенно уничтожает шар. Если несколько волшебных шаров находятся на расстоянии меньше или равно D
D
футам от Бобби, он применяет заклинание к ближайшему к нему шару. Однако, Бобби может использовать это заклинание только раз в M
M
минут. Игра заканчивается тогда, когда шар долетает до Бобби.

Помогите Джимми определить, сколько волшебных шар ему нужно создать и бросить, чтобы победить Бобби в игре, или вывести −1 если игра будет продолжаться

входные данные
6 1 3 2
выходные данные
4

Ответы

Автор ответа: bsy135ek
1

Ответ:

Алгоритм решения:

1.Найти время, которое требуется магическому шару, чтобы долететь до Бобби. Для этого можно поделить расстояние между Джимми и Бобби на скорость движения магического шара.

время_полета = L / X

2.Найти количество заклинаний, которые Бобби может использовать за время игры. Для этого нужно разделить время игры на период времени между двумя использованиями заклинания.

количество_заклинаний = время_игры // M

3.Создать список расстояний между магическим шаром и Бобби на каждую минуту полета магического шара до Бобби. Для этого нужно умножить скорость магического шара на каждую минуту полета и вычесть из L.

расстояния = [L - X * i for i in range(int(время_полета))]

4.Отсортировать список расстояний по возрастанию.

расстояния.sort()

5.Пройтись по списку расстояний и посчитать количество магических шаров, которые находятся на расстоянии не более чем D от Бобби и которые Бобби еще не уничтожил заклинанием.

количество_уцелевших_шаров = 0

for i in range(len(расстояния)):

if расстояния[i] <= D and i >= количество_уцелевших_шаров * M:

количество_уцелевших_шаров += 1

6.Если количество уцелевших шаров больше или равно 1, то Джимми победил, иначе игра продолжается.

if количество_уцелевших_шаров >= 1:

print(количество_уцелевших_шаров)

else:

print(-1

Похожие вопросы
Предмет: Русский язык, автор: buskovsasa8
Прочитайте текст, найдите и выпишите из него 10 слов, обозначающих лиц, находящихся в
разнообразных родственных отношениях. Сам текст списывать не нужно,
ЧАША ИЗ АНТИКВАРНОГО
Дом у Желтопузикова, моего соседа, - не то музей старого быта, не то выставка
ненужных вещей. На подоконнике стоит рэсавая клетка, где бегает белка в колесе. Страусиное
треснувшее яйцо лежит на тарелке в буфете. На пианино красуется большой медный
канделябр, а также настоящее пушеное ядро премен Ивана Грозного,
На днях увидал Желтопузиков в антикварном магазине оловянную чаргу, Ринулся
домой за деньгами, а чашу тем временем продали. Сосед мой страшно расстроился. Два дня
ничего не ел. Я ему говорю, мол, так переживать нельзя: тьма разного барахла продается в
антикварном. Всего не купишь. А он:
Такой чаши нигде не найдешь. Верь мне - уж я-то в этом разбираюсь прекрасно.
Хандра из-за ерунды на меня не напала бы.
Словом, впал он в великую тоску. Зинаида, его приятельница, в аптеку зачастила -
лекарства для поднятия тонуса покупает. А я так думаю о своем соседе: делать ему нечего,
коли из-за всяких там чашек страдает. Но, может, яи не прав: ну как без интереса к чему-
либо жить на белом свете?
(О.Тихомиров)​