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

После строительства на выбранной поляне частокола
для обороны от хищников Заяц обнаружил, что внутри ограды
оказалось огромное засохшее дерево, которое может помешать
строительству домика. Зайцу хочется спилить это дерево "под самый корешок"
таким образом, чтобы дерево при падении не повредило ограду.
Заяц обрубил все ветки, и от дерева остался цилиндр высотой `h` и радиусом `r`.
Ограда имеет форму окружности с радиусом `R` и по высоте больше
диаметра дерева. Центр дерева находится на расстоянии `b` от центра ограды.
Заяц может повалить дерево в любую нужную ему сторону. После падения
нижний край поваленного дерева касается (как касательная) окружности основания
дерева, как показано на рисунке. Требуется определить,
сможет ли Заяц повалить спиленное дерево, не повредив ограду.
Во входном файле в первой строке четыре целых числа через
один пробел: `R`, `r`, `h` и `b` (`1\ ≤\ r\ ≤\ r+b\ <\ R\ ≤\ 100`, `1\ ≤\ h\ ≤\ 1000`).
В выходной файл вывести слово YES,
если существует направление падения дерева, при котором ограда
останется неповрежденной, и NO в противном случае.