카테고리 없음
1004 - 어린 왕자
동바리
2023. 5. 21. 16:51
import sys
MAX = 1000
def main():
T = int(input())
while (T > 0) :
T = T - 1
start_x, start_y, end_x, end_y = map(int, input().split())
in_out_cnt = 0
planet_cnt = int(input())
for i in range(0, planet_cnt) :
planet_x, planet_y, radius = map(int, input().split())
if ((start_x - planet_x) * (start_x - planet_x) + (start_y - planet_y) * (start_y - planet_y) < radius * radius):
if ((end_x - planet_x) * (end_x - planet_x) + (end_y - planet_y) * (end_y - planet_y) > radius * radius):
in_out_cnt = in_out_cnt + 1
continue
if ((end_x - planet_x) * (end_x - planet_x) + (end_y - planet_y) * (end_y - planet_y) < radius * radius):
if ((start_x - planet_x) * (start_x - planet_x) + (start_y - planet_y) * (start_y - planet_y) > radius * radius):
in_out_cnt = in_out_cnt + 1
continue
print(in_out_cnt)
main()
1004번: 어린 왕자
입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트케이스에 대해 첫째 줄에 출발점 (x1, y1)과 도착점 (x2, y2)이 주어진다. 두 번째 줄에는 행성계의 개수 n이 주
www.acmicpc.net
- 문제의 설명은 장황했지만, 결국 시작지점과 종료지점이 각각 몇개의 원 안에 있는지 물어보는 문제였습니다.
- 각각 몇개의 원안에 있는지 수학 공식을 이용해서 풀 수 있었습니다.
- 다만, 시작지점과 종료지점이 같은 원 안에 있음을 주의해서 풀이해야 합니다.