Автор: | Завгороднев А.А. | Ограничение времени: | 2 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 256 Мб | |
Выходной файл: | Стандартный выход | |||
Максимальный балл: | 100 |
Инопланетянин по имени "Скр" живет в плоском мире. Скр снова не доел мамин суп, поэтому теперь он в бегах... Летя на своём корабле он увидел перед собой маленькую планету - круг радиуса r. На планете нет ничего, кроме ярких фонарей. Эти фонари настолько яркие, что освещают на сколько угодно большое расстояние, однако сквозь поверхность планеты они просветить не могут. Всего n фонарей, i-ый фонарь представляет из себя тонкий столб высоты hi, на верхушке которого располагается светящийся элемент, освещающий все в зоне своей видимости. Укажем точку отчета - произвольную точку на поверхности планеты. И для каждого фонаря известно вещественное число ai - угол в радианах по часовой стрелки от точки отсчета до основания фонаря (см иллюстрацию).
Скр пытается уйти от погони, поэтому хочет спрятаться в тени, то есть в такой точки планеты, которую не освещает ни один фонарь.
Инопланетянин очень не хочет попасться маме, поэтому просит вас о помощи. Он хочет узнать, есть ли на этой планете место, в котором мог бы спрятаться.
Фонари располагаются перпендикулярно поверхности планеты.
В первой строке входных данных располагается целое число n - количество фонарей на планете.
Во второй строке одно вещественное число r - радиус планеты.
В следующих n строках располагаются по два вещественных числа - ai и hi - угол в радианах от начальной точки до основания фонаря и высота фонаря.
Выведите в единственной строке YES, если существует место, в котором Скр может спрятаться, и NO в ином случае.
1 ≤ n ≤ 105
1 ≤ r ≤ 100
1 ≤ ai ≤ 2 * π
0 < hi < 100
Баллы за подзадачи начисляются только в случае, если все тесты для этой подзадачи и необходимых подзадач успешно пройдены.
Подзадача | Баллы | Дополнительные ограничения | Необходимые подзадачи | Информация о проверке |
---|---|---|---|---|
n | ||||
1 | 15 | 1 ≤ n ≤ 2 | полная | |
2 | 55 | 1 ≤ n ≤ 103 | 1 | полная |
3 | 30 | Без ограничений | 1, 2 | полная |
Иллюстрация к примеру 1
Иллюстрация к примеру 2
Иллюстрация к примеру 3
В иллюстрациях начало отсчёта располагается в верхней точке.
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
2 |
|
|
3 |
|
|
Задачу надо свести к задаче об пересечении отрезков (это известная задача, о ней можно почитать в открытых источниках).
Для каждого фонаря находим две точки - его точки касания, между которыми область, которую этот фонарь освещает. Ту точку, которая по углу ближе к начальной точке, сделать точкой начала отрезка, а вторую точкой его конца.
Сначала надо посчитать сколько отрезков покрывает начальную точку. Далее все точки отсортировать по углу до начальной точки и обойти их по часовой стрелке.
Когда встречаем точку начала отрезка, к счетчику прибавляем единицу, а когда встречаем конец, отнимает единицу. Если в какой-то момент пересекает на счетчике стоит ноль, это означает, что эту существует мы нашли темное место.