Джимми и Бобби играют в игру в школе волшебства Хогвартс. Они стоят на расстоянии L
L
футов друг от друга. Каждую минуту Джимми использует свою волшебную палочку, чтобы создать и бросить один волшебный шар в сторону Бобби, который движется со скоростью X
X
футов в минуту. Если магический шар находится не более чем в D
D
футах от Бобби, он использует свою палочку, чтобы поразить этот шар смертельным заклинанием, которое мгновенно уничтожает шар. Если несколько волшебных шаров находятся на расстоянии меньше или равно D
D
футам от Бобби, он применяет заклинание к ближайшему к нему шару. Однако, Бобби может использовать это заклинание только раз в M
M
минут. Игра заканчивается тогда, когда шар долетает до Бобби.
Помогите Джимми определить, сколько волшебных шар ему нужно создать и бросить, чтобы победить Бобби в игре, или вывести −1 если игра будет продолжаться
входные данные
6 1 3 2
выходные данные
4
Ответы
Ответ:
Алгоритм решения:
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