Джимми и Бобби играют в игру в школе волшебства Хогвартс. Они стоят на расстоянии 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

Вас заинтересует