Ограничения: время – 500ms/1000ms, память – 256MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод
Послать решение Blockly Посылки Темы Где Обсудить (0)
Маленькая гора может казаться выше высокой горы, если высокая гора находится дальше от наблюдателя.
Маленькая гора может даже закрывать высокую гору.
Напишите программу, которая поможет определить названия видимых гор. Будем считать мир плоским, склоны всех гор имеют форму конуса
с наклоном 45 градусов, т.е. радиус каждой горы равен ее высоте. Горы могут пересекаться друг с другом, но не могут находиться внутри другой горы.
Наблюдатель находится в точке с координатами (0,0) на высоте 0.
Первая строка ввода содержит одно целое число `N` (1 <= N <= 1000) -- количество гор.
Далее следует `N` строк, каждая строка содержит три целых числа -- координаты горы `x`,`y` (`-10000 <= x, y <=10000`),
её высоту `h` (1 <= h <= 10000`) и слово из прописных латинских букв длиной не более 30 -- название горы.
Все названия уникальны. Гарантируется, что наблюдатель не попадает внутрь или на склон горы.
Вывести названия гор, видимых наблюдателю по часовой стрелке, начиная с оси `Y`. Если две горы видны в одном направлении,
то сначала вывести название более высокой горы. Названия гор, скрытых от наблюдателя другими горами, не выводить.
```sample Пример ввода 1
3
0 10000 8849 ARARAT
10000 0 5959 ANETO
0 -10000 4808 MONBLAN
```
```sample Пример вывода 1
ARARAT
ANETO
MONBLAN
```
```sample Пример ввода 2
6
8 0 5 A
9 1 5 B
9 0 5 C
9 -1 5 D
16 0 10 E
120 0 80 F
```
```sample Пример вывода 2
B
F
A
D
```