본문 바로가기
Algorithm/📖Baekjoon

#1004 어린 왕자

by yewoneeee 2022. 6. 24.

# 문제

# 입력 및 출력

# 풀이

출발점과 도착점이 같은 원 안에 있다면 해당 행성의 진입/이탈이 필요 없기 때문에 그냥 넘어가고

출발점과 도착점 중 한 곳만 어떤 원 안에 존재한다면 cnt 변수 증가

어떤 원 안에 출발점과 도착점 모두 존재하지 않는다면 그냥 넘어감

#include <iostream>
using namespace std;

int main() {
	int T, x1, x2, y1, y2, n, cx, cy, r;
	cin >> T;
	while (T--) {
		int cnt = 0;
		cin >> x1 >> y1 >> x2 >> y2 >> n;
		while (n--) {
			cin >> cx >> cy >> r;
			int de = (x1 - cx)*(x1 - cx) + (y1 - cy)*(y1 - cy); // 어떤 행성의 중점과 출발점과의 거리
			int ar = (x2 - cx)*(x2 - cx) + (y2 - cy)*(y2 - cy); // 어떤 행성의 중점과 도착점과의 거리
			if (de < r*r && ar < r*r) continue; // 출발점과 도착점이 모두 한 원 안에 존재하는 경우
			if (de < r*r && ar > r*r) cnt++; // 특정 한 점만 어떤 원에 존재하는 경우
			else if (de > r*r && ar < r*r) cnt++; // "
		}
		cout << cnt << "\n";
	}
}

'Algorithm > 📖Baekjoon' 카테고리의 다른 글

#11052 카드 구매하기  (0) 2022.06.26
#11403 경로 찾기  (0) 2022.06.25
#1051 숫자 정사각형  (0) 2022.06.23
#1074 Z  (0) 2022.06.22
#1080 행렬  (0) 2022.06.21

댓글