볼록볼록

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

요약
주어진 순서를 유지한 채 연속한 점들이 반시계 방향의 엄격한 볼록 다각형을 이루는 가장 긴 구간을 찾는다.
난이도

어려움10점 중 8점

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

문제

2차원 좌표평면상에 NN개의 점 P_1,P_2,...,P_NP\_1, P\_2, ... , P\_N이 주어진다. 다음 조건들을 만족하게 하는 두 정수 ll과 rr에 대하여, r−l+1r - l + 1의 최댓값을 구해보자.

  • 1≤l<r≤N1\le l \lt r \le N이고, r−l+1≥3r - l + 1 \ge 3이다.
  • P_l,P_l+1,⋯ ,P_rP\_l, P\_{l + 1}, \cdots , P\_r가 반시계 방향 순서로 볼록 다각형을 이룬다. 이때, 모든 내각은 180도 미만이다.

입력

첫째 줄에 점의 개수 NN이 주어진다. (3≤N≤300,000)(3 \le N \le 300\\,000)

둘째 줄부터 NN개의 줄에 걸쳐 두 정수 x_i,y_ix\_i, y\_i가 주어진다. 각각 ii번째 점의 xx좌표와 yy좌표를 의미한다. (−109≤x_i,y_i≤109)(-10^9 \le x\_i, y\_i \le 10^9)

입력으로 주어지는 모든 점은 서로 다르다.

출력

문제의 조건들을 만족하게 하는 두 정수 ll과 rr에 대하여, r−l+1r - l + 1의 최댓값을 출력하라. 만약 이러한 두 정수 ll과 rr이 없다면 −1-1을 출력하라.

힌트

볼록 다각형이란 경계의 두 점을 잇는 어떤 선분도 다각형 외부로 나가지 않는 단순 다각형(자기교차하지 않는 것)이다.

예제2

  1. 예제 1

    입력
    3
    1 1
    2 2
    3 3
    
    예상 출력
    -1
    
  2. 예제 2

    입력
    5
    3 1
    4 2
    5 9
    6 2
    7 4
    
    예상 출력
    3