[BOJ]1002:タレット
🔒 例
>> 3
>> 0 0 13 40 0 37
>> 0 0 3 0 7 4
>> 1 1 1 1 1 5
2
1
0
🔧 に答える
1. n = int(sys.stdin.readline().rstrip())
2. x1, y1, r1, x2, y2, r2 = map(int, sys.stdin.readline().split())
3. 문제 == 두 원의 교점 개수 찾기
3.1 한 점에서 만난다
3.2 두 점에서 만난다
3.3 안 만난다
3.4 일치한다
🔑 答案用紙
import sys, math
n = int(sys.stdin.readline().rstrip())
for _ in range(n):
x1, y1, r1, x2, y2, r2 = map(int, sys.stdin.readline().split())
d = math.sqrt((x1 - x2)**2 + (y1 - y2)**2)
lr = max(r1, r2)
sr = min(r1, r2)
# 한 점에서 만난다 - 외접 / 내접
if lr + sr == d or lr - sr == d:
print(1)
# 두 점에서 만난다
elif lr - sr < d < lr + sr:
print(2)
# 안 만난다
elif lr + sr < d or d < lr - sr or (d == 0 and lr != sr):
print(0)
# 일치한다
elif d == 0 and lr == sr:
print(-1)
💡 コンセプト
Reference
この問題について([BOJ]1002:タレット), 我々は、より多くの情報をここで見つけました https://velog.io/@ohhj1999/BOJ-1002テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol