아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

꺾은선 07

시간 제한0.1초메모리 제한512 MB

요약
원점에서 시작해 주어진 모든 점을 지나는 수평·수직 선분으로 이루어진 꺾은선을 만들되, 선분 수를 최소화하는 출력 전용 최적화 문제입니다.
난이도

보통10점 중 7점

유형
정렬, 그리디, 구현
정답자
아직 제출이 없습니다

문제

아제르바이잔은 카펫으로 유명하다. 뛰어난 카펫 디자이너인 당신은 꺾은선을 그려 새로운 디자인을 만들려고 한다. 꺾은선은 2차원 평면 위의 tt개 선분으로 이루어진 열로, t+1t+1개 점 p0,…,ptp_0, \ldots, p_t의 열로 정의된다. 각 0≤j≤t−10 \leq j \leq t-1에 대해 점 pjp_j와 pj+1p_{j+1}을 잇는 선분이 있다.

새 디자인을 만들기 위해 당신은 2차원 평면에 nn개의 점을 이미 찍어 두었다. 점 ii (1≤i≤n1 \leq i \leq n)의 좌표는 (x[i],y[i])(x[i], y[i])이다. 어떤 두 점도 같은 x 좌표나 같은 y 좌표를 갖지 않는다.

이제 당신은 점의 열 (sx[0],sy[0]),(sx[1],sy[1]),…,(sx[k],sy[k])(sx[0], sy[0]), (sx[1], sy[1]), \ldots, (sx[k], sy[k])를 찾아 다음 조건을 만족하는 꺾은선을 정의하려고 한다.

  • (0,0)(0, 0)에서 시작한다. 즉 sx[0]=0sx[0] = 0이고 sy[0]=0sy[0] = 0이다.
  • 모든 점을 포함한다. 점이 선분의 끝점일 필요는 없다.
  • 선분이 모두 수평 또는 수직이다. 꺾은선을 정의하는 연속한 두 점은 x 좌표나 y 좌표가 같다.

꺾은선은 어떤 방식으로든 스스로 교차하거나 겹쳐도 된다. 엄밀히 말해, 평면의 각 점은 꺾은선의 임의 개수 선분에 속할 수 있다.

이 문제는 부분 점수를 주는 출력 전용 문제이다. 점의 위치를 지정하는 입력 파일 1010개가 주어진다. 각 입력 파일에 대해, 요구된 성질을 만족하는 꺾은선을 기술하는 출력 파일을 제출해야 한다. 올바른 꺾은선을 기술하는 각 출력 파일의 점수는 꺾은선의 선분 개수에 따라 달라진다. 아래 채점 기준을 참고하라.

입력

각 입력 파일의 형식은 다음과 같다.

  • 11번째 줄:     n\;\;n
  • 1+i1+i번째 줄 (1≤i≤n1 \leq i \leq n):     x[i]    y[i]\;\; x[i] \;\; y[i]

출력

각 출력 파일의 형식은 다음과 같아야 한다.

  • 11번째 줄:     k\;\;k
  • 1+j1+j번째 줄 (1≤j≤k1 \leq j \leq k):     sx[j]    sy[j]\;\; sx[j] \;\; sy[j]

두 번째 줄에는 sx[1]sx[1]과 sy[1]sy[1]이 들어가야 한다. 즉, 출력에 sx[0]sx[0]과 sy[0]sy[0]이 들어가서는 안 된다. 각 sx[j]sx[j]와 sy[j]sy[j]는 정수여야 한다.

제한

  • 1≤n≤100 0001 \leq n \leq 100\,000
  • 1≤x[i],y[i]≤1091 \leq x[i], y[i] \leq {10}^9
  • 모든 x[i]x[i]와 y[i]y[i]는 정수이다.
  • 어떤 두 점도 같은 x 좌표나 같은 y 좌표를 갖지 않는다. 즉, i1≠i2i_1 \neq i_2이면 x[i1]≠x[i2]x[i_1] \neq x[i_2]이고 y[i1]≠y[i2]y[i_1] \neq y[i_2]이다.
  • −2⋅109≤sx[j],sy[j]≤2⋅109-2 \cdot {10}^9 \leq sx[j], sy[j] \leq 2 \cdot {10}^9

예제1

  1. 예제 1

    입력
    4
    2 1
    3 3
    4 4
    5 2
    
    예상 출력
    6
    2 0
    2 3
    5 3
    5 2
    4 2
    4 4