#1311
Bronze II
컨벡스헐~
스페셜 저지
시간 제한
1s
메모리 제한
1024MB
제출
31
정답
10
맞힌 사람
10
정답 비율
32.3%

문제

컨벡스 헐은 주어진 점들을 모두 포함하는 최소 넓이의 볼록 다각형을 의미한다.

점들의 집합이 주어졌을때 컨벡스헐을 구하라는 문제를 풀던 성현이는, 이 알고리즘이 너무 어려워 포기하고말았다 ㅜㅜ

그래서 성현이는 컨벡스 헐 대신 컨벡스 헐~ 을 정의했다.

컨벡스 헐~ 이란 모든 점을 포함하는 임의의 볼록다각형을 의미한다. 이때, 경계에 놓인 점들도 포함한다고 정의한다.

컨벡스 헐~ 은 주어진 점의 집합에 대하여 유일하지 않으며 여러 개 존재한다.

컨벡스 헐 문제를 해결하지 못해 슬픈 성현이를 위해 NN개의 점이 주어질때 , 아무 컨벡스 헐~ 을 구해보자.

입력

첫째줄에 점들의 개수인 NN 이 주어진다. (0N105)(0 ≤ N ≤ 10^5)

둘째줄에 점들의 aa, bb좌표가 공백을 사이에 두고 주어진다 (0a,b109)(0 ≤ a,b ≤ 10^9)

출력

컨벡스 헐~ 을 구성하는 점들의 개수 TT 를 출력한다. TT(3T105)(3 ≤ T ≤ 10^5) 를 만족해야하며, 해당범위 내에서 문제를 해결 할 수 있음이 보장된다.

이후 TT개의 줄에 컨벡스 헐~을 이루는 점들을 임의의 순서대로 출력한다.

각각의 점들의 좌표 xx, yy(0x,y109)(0 ≤ x,y ≤ 10^9) 를 만족해야한다.

예제 입력 1

5
1 1 
1 2
2 3
4 2
3 0

예제 출력 1

5
0 1
0 2
2 4
5 2
3 0

힌트

노트

엄밀한 컨벡스헐의 수학적 정의는 위와같지 않다. 유클리드 공간에 있는 어떤 집합 CC가 주어졌을 때, CC 안의 임의의 두 점을 연결하는 선분(Line segment) 상의 모든 점이 다시 CC에 속한다면, 집합 CC를 '볼록 집합'이라고 하며, 이를 수식으로 표현하면 다음과 같다.

tx+(1t)yCtx + (1-t)y \in C

집합 CC가 볼록 집합일 필요충분조건은 임의의 x,yCx, y \in C와 임의의 실수 t[0,1]t \in [0, 1]에 대하여 위와같은 식이 성립하는 것이다.

이때 컨벡스헐은 다음과 같이 정의된다.

Conv(X)={CXC,C is a convex set}\text{Conv}(X) = \bigcap \{ C \mid X \subseteq C, C \text{ is a convex set} \}

유클리드공간 이외에도 컨벡스헐이 정의될수있다. 아주 재미있으니 관심있다면 해석학을 들어보자. 본 내용은 문제풀이와 관련되어있지 않다.

문제를 만든 사람
백성현
알고리즘 분류
코드 제출

코드를 제출하려면 로그인이 필요합니다.

로그인
내 제출
제출 내역이 없습니다.
맞은 사람
#순위사용자언어시간메모리코드 길이
8436🥇
TACOCAT
Text1ms1876KB53B
7239🥈
이승준
Text1ms1928KB53B
7710🥉
지구인
Text1ms1928KB53B
84254
안우진
Python8ms8376KB64B
72175
아보카도
Python12ms9036KB221B
82226
베스킨라빈스숭이원
Python13ms8472KB172B
73307
코요태
PyPy21ms50428KB67B
82878
니얼굴
PyPy33ms57376KB286B
76069
Team_Choi
PyPy34ms58284KB203B
823710
이일우
PyPy35ms58468KB203B
난이도 투표
Bronze II4명 투표· 3일 전
로그인 후 AC 받으면 투표할 수 있습니다.
전체 제출
#사용자문제결과언어시간메모리코드 길이제출 시간
8436
맞았습니다
Text1ms1876KB53B2026. 05. 26. 10:18
8425
맞았습니다
Python8ms8376KB64B2026. 05. 26. 08:25
8382
시스템 에러
Python--177B2026. 05. 26. 05:56
8362
시스템 에러
Text--61B2026. 05. 26. 03:51
8361
시스템 에러
Python--106B2026. 05. 26. 03:50
8360
시스템 에러
Python--86B2026. 05. 26. 03:48
8287
맞았습니다
PyPy33ms57376KB286B2026. 05. 25. 15:13
8237
맞았습니다
PyPy35ms58468KB203B2026. 05. 25. 11:14
8222
맞았습니다
Python13ms8472KB172B2026. 05. 25. 10:01