[c++] 백준 1064

알감자·2022년 4월 26일
0

백준알고리즘

목록 보기
20/52

#1064

  1. 세 점이 한 직선에 있다면 평행사변형을 만들 수 없음 -> 기울기로 검사
  2. 세 점이 만드는 직선 세 개로 두 변씩 더해 3가지 경우의 수에서 제일 큰 수 - 제일 작은수

``` #include #include #include #include using namespace std;

int main()
{
double x_A, y_A, x_B, y_B, x_C, y_C;
double length_AB, length_AC, length_BC;
double sq[3] = { 0 };

cin >> x_A >> y_A >> x_B >> y_B >> x_C >> y_C;

double slope_1, slope_2;

slope_1 = abs(y_B - y_A) / abs(x_B - x_A);
slope_2 = abs(y_C - y_B) / abs(x_C - x_B);

if (slope_1 == slope_2)
{
	cout << "-1";
	return 0;
}

length_AB = sqrt((x_A - x_B) * (x_A - x_B) + (y_A - y_B) * (y_A - y_B));
length_AC = sqrt((x_A - x_C) * (x_A - x_C) + (y_A - y_C) * (y_A - y_C));
length_BC = sqrt((x_B - x_C) * (x_B - x_C) + (y_B - y_C) * (y_B - y_C));

sq[0] = (length_AB + length_AC) * 2;
sq[1] = (length_AB + length_BC) * 2;
sq[2] = (length_AC + length_BC) * 2;

sort(sq, sq + 3);

cout << fixed;
cout.precision(16);
cout << sq[2] - sq[0];

return 0;

}

0개의 댓글