Теоретическое решение задачи

Для начала определимся с тем, что нам известны радиусы окружностей и они равны r1 и r2. Так же по формуле расстояния между точками мы можем вычислить расстояние между центрами данных окружностей:

r = sqrt( (x2-x1)2 + (y2-y1)2 )

Заметим так же, что окружности будут пересекаться тогда и только тогда, когда возможен треугольник со сторонами r1, r2 и r. Фигуру, две стороны которой лежат на третьей или одна из сторон имеет нулевую длину так же будем считать треугольником, т.к. окружности могут друг друга касаться(r=r1+r2), либо полностью совпадать (r=0).

Треугольник считается возможным если сумма двух любых его сторон не меньше третьей. Т.е. в нашем случае достаточно проверить, что r1+r2>=r и r+r2>=r1 и r+r1>=r2. При этом желательно использовать вещественные типы данных. Так же можно провести аккуратное сравнение с учетом возможных погрешностей при вычислениях.

 

 

 

Язык программирования Pascal

var a1,b1,r1,a,b,r2: integer; r : real;
begin
readln(a,b,r1);
readln(a1,b1,r2);
r:=sqrt(((a-a1)*(a-a1)) + ((b-b1)*(b-b1)));
if (r1+r2>=r) and (r+r2>=r1) and (r+r1>=r2) then write('YES')
else write('NO');
end.