아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

점 집합의 너비

시간 제한2초메모리 제한512 MB

요약
최대 100000개 점을 모두 포함하는 가장 좁은 평행 띠 너비의 제곱에서 정수 부분을 구합니다.
난이도

보통10점 중 7점

유형
기하, 투 포인터
정답자
아직 제출이 없습니다

문제

평면 위의 점 nn개로 이루어진 집합 SS가 있다. SS의 너비 ww는 SS 전체를 사이에 두는 두 평행선 사이 거리의 최솟값이다. 그림 1이 그 예이다.

그림 1: 점 세 개로 이루어진 집합의 너비 ww.

그림 1에서 SS는 점 (0,0)(0, 0), (0,3)(0, 3), (3,0)(3, 0) 세 개로 이루어진다(n=3n = 3). 너비를 결정하는 두 직선은 ℓ\ell과 ℓ′\ell'이고, 둘 사이의 거리는 w=32/2≃2.12w = 3\sqrt{2}/2 \simeq 2.12이다. 이 문제에서는 입력으로 주어진 점 집합의 w2w^2의 정수부를 구해 출력한다. 그림 1이라면 w=32/2w = 3\sqrt{2}/2이므로 w2=4.5w^2 = 4.5이고, 4.54.5의 정수부인 44를 출력하면 된다.

문제를 푸는 데 쓸 만한 공식을 하나 준다. 세 점 A=(xa,ya)A = (x_a, y_a), B=(xb,yb)B = (x_b, y_b), C=(xc,yc)C = (x_c, y_c)에 대해 삼각형 ABCABC의 높이 hh(그림 2)는 다음과 같다.

h=σ(xa−xc)(yb−yc)−(xb−xc)(ya−yc)(xa−xb)2+(ya−yb)2h = \sigma \frac{(x_a - x_c)(y_b - y_c) - (x_b - x_c)(y_a - y_c)}{\sqrt{(x_a - x_b)^2 + (y_a - y_b)^2}}

여기서 ABCABC가 반시계 방향이면(그림 2의 경우) σ=1\sigma = 1이고, 시계 방향이면 σ=−1\sigma = -1이다.

그림 2: 삼각형 ABCABC.

SS의 점이 모두 한 직선 위에 있으면 너비 ww는 0이다.

입력

첫 줄에 SS에 속한 점의 개수 nn이 주어진다. 다음 nn개의 줄에는 점 하나의 xx 좌표와 yy 좌표가 공백 하나로 구분되어 주어진다.

좌표는 0 이상 199 이하의 정수이다. 점은 최대 100000개이고, 같은 점이 여러 번 주어질 수 있다.

출력

w2w^2의 정수부를 출력한다.

예제2

  1. 예제 1

    입력
    3
    0 0
    3 0
    0 3
    
    예상 출력
    4
    
  2. 예제 2

    입력
    4
    0 0
    3 0
    0 3
    3 0
    
    예상 출력
    4