만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

사각형

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

요약
세 점이 한 직선에 놓이지 않는 n개의 점이 주어집니다. 볼록 여부와 최소 넓이에 따라 점수가 달라지는 사각형들의 최대 총점을 구합니다.
난이도

어려움10점 중 9점

유형
기하, 정렬, 분할 정복
정답자
아직 제출이 없습니다

문제

사각형은 서로 다른 꼭짓점 네 개와 서로 다른 변 네 개를 가지며, 변끼리 교차하지 않는 다각형이다. 모든 꼭짓점의 내각이 180도보다 작으면 볼록 사각형이라고 하고, 그렇지 않으면 오목 사각형이라고 한다. 아래 그림은 볼록 사각형(왼쪽)과 오목 사각형(오른쪽)이다.

어떤 시험 문제에서는 평면 위의 점 nn개로 이루어진 집합 PP가 주어진다. PP에 있는 세 점은 한 직선 위에 있지 않다. PP에서 점 네 개를 골라 연결하여 사각형을 최대한 많이 찾는 것이 목표다. PP의 각 점은 몇 번이든 사용할 수 있고, 찾은 사각형끼리는 겹쳐도 된다. 사각형마다 모양과 넓이에 따라 점수가 주어진다. 볼록 사각형과 넓이가 최소인 사각형일수록 점수가 높다.

PP에서 점 네 개를 연결해 만들 수 있는 모든 사각형의 넓이 중 최솟값을 aa라고 한다. 점수는 다음과 같다.

  • 넓이가 정확히 aa인 서로 다른 볼록 사각형은 하나당 4점을 얻는다.
  • 넓이가 정확히 aa인 서로 다른 오목 사각형은 하나당 3점을 얻는다.
  • 넓이가 aa보다 큰 서로 다른 볼록 사각형은 하나당 2점을 얻는다.
  • 넓이가 aa보다 큰 서로 다른 오목 사각형은 하나당 1점을 얻는다.

두 사각형은 꼭짓점과 변이 완전히 같을 때만 같은 사각형으로 본다. 최소 넓이 aa인 사각형은 두 개 이상일 수 있다.

PP가 주어졌을 때, PP로 만들 수 있는 사각형을 모두 찾아 얻을 수 있는 점수의 합의 최댓값을 구하는 프로그램을 작성하라.

입력

첫 줄에 정수 nn(4≤n≤10004 \le n \le 1000)이 주어진다. nn은 PP의 점의 개수이다. 이어지는 nn개의 줄에는 각각 점의 x좌표와 y좌표를 나타내는 정수 두 개가 주어진다. 좌표는 −109-10^{9} 이상 10910^{9} 이하이다. PP에 있는 세 점은 한 직선 위에 있지 않다.

출력

얻을 수 있는 점수 합의 최댓값을 나타내는 정수 하나를 한 줄에 출력한다.

예제4

  1. 예제 1

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

    입력
    4
    0 0
    10 0
    5 10
    5 8
    
    예상 출력
    5
    
  3. 예제 3

    입력
    4
    0 0
    10 0
    5 10
    5 3
    
    예상 출력
    7
    
  4. 예제 4

    입력
    5
    0 0
    0 5
    5 0
    5 5
    4 2
    
    예상 출력
    14