입력값으로 점 A, B, C의 좌표가 주어져있다. 이 때, 점 A, B, C가 일직선 상에 존재한다면 평행사변형을 만들 수가 없다. 따라서 직선 AB의 기울기와 직선 AC의 기울기가 같다는 것을 수학적으로 바꿔 표현하면 ZeroDivisionError을 피하면서 문제의 조건을 충족시켜줄 수 있다.
import math
Xa, Ya, Xb, Yb, Xc, Yc = map(int, input().split())
ac_length = math.sqrt((Xa-Xc)**2 + (Ya-Yc)**2)
ab_length = math.sqrt((Xa-Xb)**2 + (Ya-Yb)**2)
bc_length = math.sqrt((Xb-Xc)**2 + (Yb-Yc)**2)
round1 = (ac_length + ab_length) * 2
round2 = (ac_length + bc_length) * 2
round3 = (ab_length + bc_length) * 2
max_round = max(round1, round2, round3)
min_round = min(round1, round2, round3)
if ((Ya - Yc) * (Xa - Xb)) == ((Ya - Yb) * (Xa - Xc)):
print(-1.0)
else:
print(max_round - min_round)