printРабочее место участника

printЗадачи

213. Хулиганы

Ограничения: время – 2s/4s, память – 32MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение Blockly Посылки Темы Где Обсудить (0)

На плоскости расположено `N` хулиганов, в точках `(x_1,\ y_1),\ (x_2,\ y_2),\ …\ (x_N,\ y_N)`. Каждый хулиган характеризуется своей грозностью `T_i` и силой `S_i`.
Маленький мальчик Петя изначально находится в точке `(x,\ y)`. Если в начальный момент Петя находится на расстоянии меньшем либо равном `S_i` от `i`-го хулигана, то тот бросает в него снежком. Испугавшись, Петя бежит в направлении от хулигана (по прямой, соединяющей Петю и хулигана) со скоростью `V` м/с в течении `T_i` секунд, после чего останавливается. Если в этот момент он снова находится близко к хулигану, в него снова бросают снежком, и т. д.
Если в Петю одновременно бросают несколько снежков, то Петя так сильно пугается, что не оглядываясь бежит домой. Если Петя оказывается вне достигаемости хулиганов, он очень радуется. Но если Пете приходится бегать в течении более чем `T` секунд, он устает и, остановившись в очередной раз, начинает плакать. Гарантируется, что Петя никогда не остановится в точке, где находится хулиган.
Определите конечное состояние Пети, одно из:
убежал домой из точки (`x`, `y`) через `t` секунд
плачет в точке (`x`, `y`)
радуется в точке (`x`, `y`), начиная с `t` секунды
На первой строке ввода находится 5 чисел: целое `N` – количество хулиганов `(0\ ≤\ N\ ≤\ 100)`, вещественные `V,\ x,\ y` – скорость и начальные координаты Пети и целое число `T\ (1\ ≤\ T\ ≤\ 10000)`. Следующие `N` строк содержат описания хулиганов в следующем формате: `x_i,\ y_i,\ T_i,\ S_i\ (x_i,\ y_i,\ S_i` – вещественные, `T_i` целое, `1\ ≤\ S_i\ ≤\ 1000.0,\ |x_i|,\ |y_i|\ ≤\ 1000.0,\ 1\ \ ≤\ T_i\ ≤\ 1000)`. Все числа разделяются одним или несколькими пробелами.
Выведите одно из трех указанных предложений, подставив вместо `x,\ y` и `t` истинное положение Пети и соответствующий момент. Координаты следует выводить ровно с 2 значащими цифрами, время – целое число. Выводить можно в любой кодировке.

Пример ввода 1

0 1.0 1.5 3.14 7

Пример вывода 1

радуется в точке (1.50, 3.14), начиная с 1 секунды

Пример ввода 2

1 1.0 1.0 0.0 4
0.0 0.0 4 3.0

Пример вывода 2

радуется в точке (5.00, 0.00), начиная с 5 секунды

Пример ввода 3

1 1.2 1.0 0.0 4
0.0 0.0 10 3.0

Пример вывода 3

плачет в точке (13.00, 0.00)

Пример ввода 4

2 1.0 1.0 0.0 5
0.0 0.0 2 1.2
4.0 0.0 2 1.2

Пример вывода 4

плачет в точке (3.00, 0.00)

Пример ввода 5

2 1.0 1.0 0.0 4
0.0 0.0 2 2.0
2.0 0.0 2 2.0

Пример вывода 5

убежал домой из точки (1.00, 0.00) через 0 секунд

Пример ввода 6

3 1.0 1.0 0.0 4
0.0 0.0 1 1.0
2.0 1.0 2 1.0
2.0 -1.0 2 1.0

Пример вывода 6

убежал домой из точки (2.00, 0.00) через 1 секунд

Пример ввода 7

2 1.0 1.0 0.0 1
0.0 0.0 1 10.0
4.0 0.0 1 1.0

Пример вывода 7

плачет в точке (3.00, 0.00)
Источник: IX командный чемпионат школьников Санкт-Петербурга по программированию
loading