Поиск по этому блогу

вторник, 16 марта 2021 г.

Две окружности

На плоскости даны две окружности. Требуется проверить, имеют ли они хотя бы одну общую точку.

Входные данные

Входной файл INPUT.TXT состоит из двух строк. На каждой строке записана информация об одной окружности – координаты ее центра x и y (целые числа, по модулю не превосходящие 5000) и радиус (целое число 1 ≤ r ≤ 1000).

Выходные данные

В выходной файл OUTPUT.TXT выведите «YES», если окружности имеют хотя бы одну общую точку, и «NO» в противном случае.
Примеры

INPUT.TXT

OUTPUT.TXT

1

0 0 2
0 3 2

YES

2

1 1 1
4 4 1

NO


Решение

var x1,x2,y1,y2,r1,r2:longint;
  r:real;
    f,f1:text; 
  begin
    assign(f,'input.txt'); 
    reset(f); 
     assign(f1,'output.txt'); 
     rewrite(f1); 
    readln(f,x1,y1,r1);
   readln(f,x2,y2,r2);
   r:=(sqr(x1-x2)+sqr(y1-y2)); if (r=0) or ((r+r1)<r2) or ((r+r2)<r1) then write(f1,'NO') else
    if r>(sqr(r1+r2)) then write(f1,'NO') else write(f1,'YES');
     close(f);
      close(f1); 
   end.



Комментариев нет:

Отправить комментарий