원 이동하기 2 문제를 만들고 만든 데이터가 문제의 조건에 맞는지 확인하는 코드를 작성해야한다.
해당 문제의 데이터는 아래 조건들을 만족해야한다.
데이터 형식은 원의 개수 N이랑 각 원의 중심 x좌표, 원의 반지름 r만 주어진다. 따라서, 2번 조건을 만족하는지만 확인하면 된다.
주어진 데이터가 해당 조건을 만족하는지 확인해보자.
첫 번째 줄에는 원의 개수 N이 주어진다.
두 번째 줄부터 N+1번째 줄까지 원의 중심 x좌표, 원의 반지름 r이 공백으로 구분되어 주어진다.
데이터가 조건에 맞는다면 YES, 조건에 만족하지 않는다면 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=(x_1−x_2)2+(y_1−y_2)2