시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
---|---|---|---|---|---|
1 초 (하단 참고) | 1024 MB | 2527 | 815 | 580 | 31.816% |
원 이동하기 2 문제를 만들고 만든 데이터가 문제의 조건에 맞는지 확인하는 코드를 작성해야한다.
해당 문제의 데이터는 아래 조건들을 만족해야한다.
데이터 형식은 원의 개수 $N$이랑 각 원의 중심 $x$좌표, 원의 반지름 $r$만 주어진다. 따라서, 2번 조건을 만족하는지만 확인하면 된다.
주어진 데이터가 해당 조건을 만족하는지 확인해보자.
첫 번째 줄에는 원의 개수 $N$이 주어진다.
두 번째 줄부터 $N+1$번째 줄까지 원의 중심 $x$좌표, 원의 반지름 $r$이 공백으로 구분되어 주어진다.
데이터가 조건에 맞는다면 YES
, 조건에 만족하지 않는다면 NO
를 출력한다.
4 5 4 3 1 6 1 13 3
YES
4 3 1 4 1 5 1 6 5
NO
두 원의 위치관계를 파악할 때 아래를 이용하면 된다.
원 A의 반지름은 $r_A$, 원 B의 반지름은 $r_B$, 원 A와 원 B의 중심 사이의 거리를 $d$라고 가정하자.
두 점에서 만난다. | 한 점에서 만난다. | 만나지 않는다. | |||
외접 | 내접 | 외부에 있는 경우 | 내부에 있는 경우 | 동심원 | |
$|r_A-r_B|<d<r_A+r_B$ | $r_A+r_B=d$ | $|r_A-r_B|=d$ | $r_A+r_B<d$ | $d<|r_A-r_B|$ | $d=0$ |
$(x_1, y_1)$와 $(x_2, y_2)$ 사이의 거리 $d$를 구하는 식은 아래와 같다.
$d = \sqrt{(x_1-x_2)^2+(y_1-y_2)^2}$