白駿/タレット/1022


Question
質問リンク
Silver 4

Logic
デフォルト構造:if-else
1.2つの円(李錫元、趙圭賢)の交点の個数を求める問題に等しい.
2.交差点なし、1個、2個、無限大.これは、2つの円の半径r 1,r 2と2つの円との間の距離の二乗(計算を容易にするために平方数を用いる)dを用いて求められる.
3-1. 無限大:同心円、r 1=r 2の場合
3-2. 2つの場合:r 1^23-3. 1個:d=r 1^2またはd=r 2^2
3-4. 0人の場合:同心円、r 1!=r 2の場合は上の場合が残ります
Code
from sys import stdin
import math

def dist( x1,y1,x2,y2):
    return ((x2-x1)**2+(y2-y1)**2)

for _ in range(int(stdin.readline())) :
    x1,y1,r1,x2,y2,r2 = map(int,stdin.readline().split())
    d = dist(x1,y1,x2,y2)
    r = (r1+r2)**2
    rs = (r1+r2)**2
    rm = (abs(r1-r2))**2
    if d==0.0:
        if r1==r2 : print(-1)
        else : print(0)
    else :
        if d==rs or d==rm : print(1)
        elif d < rs and d > rm : print(2)
        else : print(0)