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

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

픽셀 임대

시간 제한3초메모리 제한128 MB

요약
주어진 블록들을 모두 포함하는 가장 작은 직교 볼록 영역을 구하고 외곽선 꼭짓점을 시계 방향으로 출력합니다.
난이도

어려움10점 중 8점

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

문제

해리엇 에멜은 자기 웹 페이지의 공간을 10픽셀 × 10픽셀짜리 블록 단위로 빌려준다. 페이지는 가로세로 10픽셀 간격의 격자선으로 나뉘어 있고, 누구든 이 격자의 블록을 빌려 그림이나 광고를 올릴 수 있다.

에멜은 손님 대부분이 직사각형 모양으로 블록을 고를 것이라고 예상했지만, 그렇지 않은 손님도 있었다. 어느 안경점은 안경 모양으로 블록을 골랐고, 활을 파는 가게는 과녁 모양으로 블록을 골랐다.

장부를 간단하게 관리하려고 에멜은 한 번의 신청이 반드시 하나의 직교 볼록(orthogonally convex) 블록 집합이어야 한다는 규칙을 세웠다. 직교 볼록이란 격자의 어느 행이든 어느 열이든 그 집합과 만나는 부분이 비어 있거나 연속된 한 덩어리라는 뜻이다.

손님이 원하는 블록을 아무렇게나 고르면, 에멜은 그 블록을 모두 포함하는 가장 작은 직교 볼록 영역을 계산해서 그 영역을 빌려준다. 이 영역을 구하는 프로그램을 작성하시오.

입력으로 주어지는 신청은 모두 이렇게 얻은 최소 영역이 하나로 이어져 있다. 즉 영역 안의 두 픽셀을 어떻게 고르더라도, 영역 안의 픽셀만 밟으면서 상하좌우로 움직여 한쪽에서 다른 쪽으로 갈 수 있다.

입력

입력은 여러 개의 테스트 케이스로 이루어진다.

각 테스트 케이스의 첫 줄에 손님이 고른 블록의 개수 nn (1≤n≤100001 \le n \le 10000)이 주어진다. 이어지는 한 줄 이상에 정수 2n2n개가 r0 c0 r1 c1…rn−1 cn−1r_0\ c_0\ r_1\ c_1 \dots r_{n-1}\ c_{n-1} 순서로 주어진다. rir_i와 cic_i는 ii번째 블록의 왼쪽 위 픽셀의 행 번호와 열 번호다. 좌표는 모두 10의 배수이고 0≤ri,ci≤1090 \le r_i, c_i \le 10^9이다. 한 테스트 케이스 안에서 같은 좌표 쌍이 두 번 나오지는 않는다.

각 테스트 케이스는 고른 블록을 모두 포함하는 최소 직교 볼록 영역이 하나로 이어진 다각형이 되도록 주어진다.

0 하나만 있는 줄을 만나면 입력이 끝난다.

출력

테스트 케이스마다 한 줄씩 출력한다. 줄의 처음에 Case k: 를 출력한다. kk는 1부터 세는 테스트 케이스 번호다. 그 뒤에 최소 직교 볼록 영역의 꼭짓점을 행 번호, 열 번호 순서로 모두 출력한다. 수는 공백 하나로 구분하고, 첫 꼭짓점을 마지막에 다시 적지 않는다.

첫 꼭짓점은 영역에서 행 번호가 가장 작고 그중 열 번호가 가장 작은 블록의 왼쪽 위 픽셀이다. 거기서 출발해 영역의 테두리를 시계 방향으로 한 바퀴 돈다. 위쪽 변에서는 오른쪽으로, 오른쪽 변에서는 아래로, 아래쪽 변에서는 왼쪽으로, 왼쪽 변에서는 위로 나아간다. 테두리는 영역에 속한 픽셀만 밟아 따라가고, 진행 방향이 꺾이는 픽셀마다 그 픽셀의 행 번호와 열 번호를 출력한다.

예제1

  1. 예제 1

    입력
    30
    20 20 20 30 20 40 20 50 20 60 20 70 20 80 20 90 20 100
    20 110 20 120 20 130 20 140 20 150
    30 20 30 70 30 100 30 150
    40 20 40 70 40 100 40 150
    50 30 50 40 50 50 50 60 50 110 50 120 50 130 50 140
    28
    80 60 80 70 80 80 80 90
    90 50 90 100
    100 40 100 70 100 80 100 110
    110 40 110 60 110 90 110 110
    120 40 120 60 120 90 120 110
    130 40 130 70 130 80 130 110
    140 50 140 100
    150 60 150 70 150 80 150 90
    0
    
    예상 출력
    Case 1: 20 20 20 159 49 159 49 149 59 149 59 30 49 30 49 20
    Case 2: 80 60 80 99 90 99 90 109 100 109 100 119 139 119 139 109 149 109 149 99 159 99 159 60 149 60 149 50 139 50 139 40 100 40 100 50 90 50 90 60