시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 1024 MB72282243.137%

문제

2차원 평면상에 있는 서로 다른 $N$개의 점 중에서 한 점을 지웠을 때, 나머지 $N-1$개의 점을 포함하는 볼록 껍질을 구성하는 꼭짓점의 개수가 $K$가 되어야 한다. 이때, 지울 수 있는 점의 수를 구하는 프로그램을 작성하시오. 볼록 껍질의 변에 점이 여러 개 있는 경우에는 가장 양 끝 점만 개수에 포함한다.

입력

첫째 줄에 점의 개수 $N$과 $K$가 주어진다. $(4 \leq N ≤ 500\,000;$ $3 \leq K \leq N - 1)$가 주어진다.

둘째 줄부터 $N$개의 줄에 걸쳐 각 점의 $x$좌표와 $y$좌표가 공백으로 구분되어 주어진다. 각 좌푯값은 절댓값이 $10^9$ 이하인 정수이며 점들의 위치는 서로 다르다.

출력

지울 수 있는 점의 수를 출력한다.

예제 입력 1

8 7
-2 -1
-2 1
-1 -2
-1 2
1 -2
1 2
2 -1
2 1

예제 출력 1

8

예제 입력 2

5 3
1 1
2 3
3 1
3 2
4 1

예제 출력 2

4

예제 입력 3

5 4
1 1
2 3
3 1
3 2
4 1

예제 출력 3

1

예제 입력 4

9 4
1 1
1 2
1 3
2 1
2 2
2 3
3 1
3 2
3 3

예제 출력 4

5

예제 입력 5

9 5
1 1
1 2
1 3
2 1
2 2
2 3
3 1
3 2
3 3

예제 출력 5

4

힌트

한 점을 지웠을 때, 나머지 점들이 일직선상에 있다면 2개의 꼭짓점으로 볼록 껍질이 구성되므로 세지 않는다.

출처

Camp > ICPC Sinchon Algorithm Camp > 2023 ICPC Sinchon Winter Algorithm Camp Contest > 중급 G번