만드는 중입니다

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

볼록 껍질

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

요약
각 점을 뺀 나머지 점들로 만든 볼록 껍질 위에 놓이는 점의 개수를 구합니다.
난이도

어려움10점 중 8점

유형
기하, 정렬, 구현
정답자
아직 제출이 없습니다

문제

2차원 점 집합 PP의 볼록 껍질은 PP의 모든 점을 감싸는 다각형 중 둘레가 가장 작은 다각형이다. 이 다각형은 항상 볼록한 모양이므로 '볼록'이라는 이름이 붙었다.

N개의 점으로 이루어진 집합 PP가 주어진다. 각 점 (xi,yi)∈P(x_i, y_i) \in P에 대해, P∖{(xi,yi)}P \setminus \{(x_i, y_i)\}의 점 중에서 P∖{(xi,yi)}P \setminus \{(x_i, y_i)\}의 볼록 껍질 위에 정확히 놓인 점의 개수를 구하라. 즉, 볼록 껍질을 만들기 전에 점 (xi,yi)(x_i, y_i)를 PP에서 뺀다. 점들의 배치에 따라 볼록 껍질은 선분이나 한 점으로 퇴화할 수 있다.

입력

첫째 줄에 점의 개수를 나타내는 정수 NN (2≤N≤1000002 \le N \le 100000)이 주어진다. 다음 N개의 줄에는 각각 ii번째 점의 좌표를 나타내는 정수 xix_i와 yiy_i (−109≤xi,yi≤109-10^9 \le x_i, y_i \le 10^9)가 주어진다. 같은 좌표를 가진 두 점은 없다.

출력

N개의 줄을 출력한다. ii번째 줄에는 P∖{(xi,yi)}P \setminus \{(x_i, y_i)\}의 볼록 껍질 위에 정확히 놓인 P∖{(xi,yi)}P \setminus \{(x_i, y_i)\}의 점 개수를 출력한다.

예제2

  1. 예제 1

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

    입력
    3
    0 0
    0 100
    100 0
    
    예상 출력
    2
    2
    2