В
Все
М
Математика
О
ОБЖ
У
Українська мова
Х
Химия
Д
Другие предметы
Н
Немецкий язык
Б
Беларуская мова
М
Музыка
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
У
Українська література
Р
Русский язык
Ф
Французский язык
П
Психология
О
Обществознание
А
Алгебра
М
МХК
Г
География
И
Информатика
П
Право
А
Английский язык
Г
Геометрия
Қ
Қазақ тiлi
Л
Литература
И
История
Dilya173
Dilya173
10.11.2020 20:00 •  Информатика

B. Кто быстрее?
Ограничение времени 1 секунда
Ограничение памяти 64Mb
Ввод стандартный ввод или input.txt
Вывод стандартный вывод или output.txt
В этом году третий раз одна известная компания проводит соревнование по программированию искусственного интеллекта для игровых стратегий. В этот раз участникам предложили написать искусственный интеллект для управления командой хоккеистов. Научив команду ездить за шайбой, Вася понял, что ехать к ней должен тот хоккеист, который сможет ее быстрее догнать. Для грубой оценки времени он предположил, что хоккеист будет сначала поворачиваться с максимальной скоростью до тех пор, пока не будет смотреть точно на шайбу. После этого он поедет к ней с какой-то средней скоростью. На каждом ходу известно, что хоккеист повернут на А градусов, а для того, чтобы смотреть точно на шайбу, нужно быть повернутым на В градусов. Углы отсчитываются от положительного направления оси абсцисс против часовой стрелки. Расстояние от игрока до шайбы равно D. За один ход хоккеист может повернуться не более чем на Т градусов или переместиться на расстояние, не превосходящее S. За какое наименьшее количество ходов игрок сможет добраться до шайбы?

Формат ввода
Во входном файле заданы пять целых чисел D, A, B, S и T (0 ≤ D ≤ 109, 0 ≤ A, B < 360, 1 ≤ S ≤ 109, 1 ≤ T < 360).

Формат вывода
В выходной файл выведите, за какое наименьшее количество ходов хоккеист сможет добраться до шайбы.

Пример 1
Ввод Вывод
0 172 172 1 320
0
Пример 2
Ввод
65 55 55 2 113 Вывод
33​

Показать ответ
Ответ:
kozina574
kozina574
12.10.2020 06:54

Python 3.6

a = [int(i) for i in input().split()]

ab = abs(a[1] - a[2])

if ab > 180:

   ab = 360 - ab

if ab % a[4] == 0:

   x = ab // a[4]

else:

   x = ab // a[4] + 1

if a[0] % a[3] == 0:

   x += a[0] // a[3]

else:

   x += a[0] // a[3] + 1

print(x)

PascalABC.NET 3.5.1

program who;

var a, b, ab, t: integer;

 d, s, x: LongInt;

begin  

 read(d, a, b, s, t);

 

 ab := abs(a - b);  

   

 if ab > 180 then

   ab := 360 - ab;  

 if ab mod t = 0 then

   x := ab div t  

 else  

   x := ab div t + 1;  

 if d mod s = 0 then  

   x := x + d div s  

 else  

   x := x + d div s + 1;  

 write(x);

end.

Объяснение:

Думаю по коду поймешь

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота