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

printЗадачи

671. Круглая задача

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

После того как Робинзон Крузо построил свою лодку, он решил обследовать близлежащие острова архипелага из `N` островов. Целью своего путешествия он выбрал `N`-й остров, надеясь, что обнаружит на нем туземное поселение и британского консула. Опасаясь внезапных тропических штормов, он решил не отплывать далеко от берега и переплывать с одного острова на другой, только если расстояние между берегами этих островов (и, следовательно, плавание вдали от берега) не превышает `D` километров.
Для упрощения задачи все острова будем считать кругами с разным радиусом. Напишите программу, которая поможет Робинзону определить, сможет ли он добраться до `N`-го острова.
Во входном файле в первой строке содержатся два целых числа `N` (`2\ ≤\ N\ ≤\ 100`) и `D` (`5\ ≤\ D\ ≤\ 50`), разделенных одним пробелом – число островов и максимальное расстояние, на которое отваживается совершить плавание Робинзон. В следующих `N` строках находится по три целых числа `X_i`, `Y_i`, `R_i` (`0\ ≤\ X_i,\ Y_i\ ≤\ 1000`, `1\ ≤\ R_i\ ≤\ 50`, `1\ ≤\ i\ ≤\ N`) через один пробел – координаты и радиус острова. Первый остров является стартовым, а `N`-й – целью путешествия.
В выходной файл вывести "YES", если Робинзон сумеет добраться до цели, или "NO", если цели невозможно достичь для заданного ограничения `D`.

Пример ввода

5 9
5 25 3
8 12 2
15 15 5
30 15 3
35 5 4

Вывод для примера

YES
loading