만드는 중입니다

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

서바이벌

시간 제한1초메모리 제한1024 MB

요약
각 학생이 가장 가까운 학생을 쏘고, 동률이면 번호가 큰 학생을 고릅니다. 이 선분들이 만드는 변의 수가 가장 많은 단순 다각형을 찾아 변의 수를 구합니다.
난이도

보통10점 중 6점

유형
기하, 수학, 그래프
정답자
아직 제출이 없습니다

문제

경기과학고등학교 학생들은 수학여행에서 서바이벌 게임을 하게 되었다. 총 NN명의 학생이 좌표평면 위에 모여 있고, ii번째 학생은 (x_i,y_i)(x\_i, y\_i)에 있다. x_ix\_i와 y_iy\_i는 모두 정수이며, 같은 점에 두 명 이상의 학생이 있는 경우는 없다.

학생들은 물리를 아주 잘해서 총알이 빗나가지 않는다. 다만 총의 성능이 좋지 않아서, 각 학생은 자신과 가장 가까운 학생 한 명에게만 총을 쏜다. 가장 가까운 학생이 여러 명이면 그중 번호가 가장 큰 학생에게 쏜다.

각 학생이 쏜 총알의 경로는 쏜 학생과 맞은 학생을 잇는 선분으로 본다. 학생들이 총을 쏘아 총알의 경로로 단순다각형을 이룰 수 있다.

정확히는, MM명의 학생 s_1,s_2,…,s_Ms\_1, s\_2, \dots, s\_M이 단순다각형을 이룬다는 것은 다음 조건을 만족하는 것이다. 이때 M≥3M \geq 3인 경우만 단순다각형이 될 수 있다.

  • 1≤i≤M−11 \leq i \leq M-1인 ii에 대해 s_is\_i번 학생은 s_i+1s\_{i+1}번 학생에게 총을 쏜다. 또 s_Ms\_M번 학생은 s_1s\_1번 학생에게 총을 쏜다.
  • 각 학생이 쏜 MM개의 총알 경로만 고려할 때, 각 경로는 양 끝점 이외의 점에서 다른 경로와 만나지 않는다.

학생 수와 각 학생의 위치가 번호 순서대로 주어질 때, 총알의 경로가 만드는 단순다각형 중 변의 개수가 가장 많은 것을 찾아 그 변의 개수를 구하라.

입력

첫 번째 줄에 학생의 수 NN이 주어진다.

그 다음 NN개의 줄 중 ii번째 줄에는 ii번 학생의 좌표 x_ix\_i, y_iy\_i가 공백으로 구분되어 주어진다.

출력

총알의 경로가 만드는 단순다각형 중 변의 개수가 가장 많은 것의 변의 개수를 첫 번째 줄에 출력한다. 단순다각형이 하나도 만들어지지 않으면 −1-1을 출력한다.

제한

  • 3≤N≤300 0003 \leq N \leq 300\,000
  • −109≤x_i,y_i≤109-10^9 \leq x\_i, y\_i \leq 10^9 (1≤i≤N1 \leq i \leq N)
  • i≠ji \neq j이면 (x_i,y_i)≠(x_j,y_j)(x\_i,y\_i) \neq (x\_j,y\_j)

힌트

점이나 선분은 단순다각형이 아니다.

학생들은 유클리드 평면 위에 있으며, 두 점 (x_i,y_i)(x\_i,y\_i)와 (x_j,y_j)(x\_j,y\_j) 사이의 거리는 (x_i−x_j)2+(y_i−y_j)2\sqrt{(x\_i-x\_j)^2+(y\_i-y\_j)^2}이다.

예제1

  1. 예제 1

    입력
    3
    1 5
    3 3
    5 1
    
    예상 출력
    -1