Проверить,
находится ли точка внутри круга.
Вход. В первой строке
заданы координаты центра круга и его радиус. Во второй строке заданы координаты
точки A. Все числа целые, не превосходящие по модулю 1000.
Выход. Вывести “YES”, если точка A
принадлежит кругу (с границами), и “NO”
иначе.
Пример входа |
Пример выхода |
2 1 2 1 3 |
NO |
РЕШЕНИЕ
геометрия
Пусть (x, y)
– координаты центра круга и r – его
радиус. Пусть (a, b) – координаты точки А. Точка А лежит
внутри круга (включая границы), если
(x – a)2
+ (y – b)2 ≤ r2
Читаем входные
данные.
scanf("%d %d %d",&x,&y,&r);
scanf("%d %d",&a,&b);
Проверяем, лежит ли точка (a, b) внутри круга.
if ((x - a)*(x - a) + (y - b)*(y - b) <= r*r)
puts("YES");
else
puts("NO");
#include <stdio.h>
int x, y, r, a, b;
struct circle
{
int x, y,
r;
} c;
struct point
{
int x, y;
} p;
int inside(struct point p, struct circle c)
{
return ((c.x - p.x)*(c.x - p.x) + (c.y - p.y)*(c.y - p.y) <= c.r * c.r);
}
int main(void)
{
scanf("%d %d %d",
&c.x, &c.y, &c.r);
scanf("%d %d",
&p.x, &p.y);
if
(inside(p, c))
puts("YES");
else
puts("NO");
return 0;
}
#include <stdio.h>
class Point
{
public:
double x, y;
Point(double
x, double y) : x(x), y(y) {}
};
class Circle
{
public:
double x, y,
r;
Circle(double
x, double y, double
r) : x(x), y(y), r(r) {}
int
Inside(Point &p)
{
return (x -
p.x)*(x - p.x) + (y - p.y)*(y - p.y) <= r * r;
}
};
double x, y, r, a, b;
int main(void)
{
scanf("%lf
%lf %lf",&x,&y,&r);
Circle c(x,y,r);
scanf("%lf
%lf",&a,&b);
Point p(a,b);
if
(c.Inside(p)) puts("YES"); else puts("NO");
return 0;
}
import java.util.*;
public class Main
{
public static void main(String[] args)
{
Scanner con = new Scanner(System.in);
int x = con.nextInt();
int y = con.nextInt();
int r = con.nextInt();
int a = con.nextInt();
int b = con.nextInt();
if ((x - a)*(x - a) + (y - b)*(y - b) <= r*r)
System.out.println("YES");
else
System.out.println("NO");
con.close();
}
}
import java.util.*;
class Point
{
int x, y;
Point(int x, int y)
{
this.x = x;
this.y = y;
}
}
class Circle
{
int x, y, r;
Circle(int x, int y, int r)
{
this.x = x;
this.y = y;
this.r = r;
}
boolean Inside(Point p)
{
return (x - p.x)*(x - p.x) + (y - p.y)*(y - p.y) <= r * r;
}
};
public class Main
{
public static void main(String[] args)
{
Scanner con = new Scanner(System.in);
int x = con.nextInt();
int y = con.nextInt();
int r = con.nextInt();
Circle c = new Circle(x,y,r);
int a = con.nextInt();
int b = con.nextInt();
Point p = new Point(a,b);
if (c.Inside(p))
System.out.println("YES");
else
System.out.println("NO");
con.close();
}
}