YJ/C++

[백준/BOJ/C++] 22938번 백발백준하는 명사수

Team DAON 2021. 10. 8. 15:06

[문제]

백발백준은 무슨 과녁이던 백발백중하여 올림픽 금메달보다 따기 어렵다는 대한민국 양궁 국가대표 타이틀을 가지고 있다. 이런 백발백준이 현재 연마하는 스킬이 있는데...

바로 두 과녁을 한번에 맞추는 스킬이다. 이를 연습하기 위해 두 과녁이 겹치는 부분이 있어 한번에 맞추기가 가능한지 알아보고 싶어졌다.

여러분은 백발백준이 연습하는 과정을 도와주기 위해 원 모양으로 생긴 두 과녁이 겹치는 부분이 존재하는지 확인하는 프로그램을 작성해보자.

 

[입력]

첫번째 줄에는 첫번째 과녁의 중심 X1, Y1와 반지름 R1이 주어진다.

두번째 줄에는 두번째 과녁의 중심 X2, Y2와 반지름 R2가 주어진다.

X1, X2, Y1, Y2는 모두 정수이며, R1, R2는 모두 자연수이다.

-10^9 ≤ X1, X2, Y1, Y2 ≤ 10^9, 0 < R1, R2 ≤ 10^9

 

[출력]

두 과녁이 겹치면 YES, 아니면 NO를 출력한다.

단, 두 과녁이 한 점에서 만나는 경우는 겹치지 않는 것으로 생각한다.

 

[Source Code]

#include <stdio.h>
#include <iostream>
#include <vector>
#include <cmath>
using namespace std;

int main() {
	double x1, y1, r1, x2, y2, r2;

	cin >> x1 >> y1 >> r1;
	cin >> x2 >> y2 >> r2;
	
	double distance = sqrt(pow((x1-x2),2) + pow((y1-y2),2));

	double r_sum = r1 + r2;

	if(distance < r_sum)
		cout << "YES";
	else
		cout << "NO";
}

[결과 화면]