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

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

부족

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

요약
양의 면적으로 겹치는 축평행 직사각형을 감싸는 최소 직사각형으로 합치기를 반복하고 남은 영역을 사전식으로 출력합니다.
난이도

어려움10점 중 8점

유형
유니온 파인드, 세그먼트 트리, 기하, 정렬
정답자
아직 제출이 없습니다

문제

바이토비치 교수는 역사학자다. 최근 그는 바이트피아 대륙에 첫 국가가 생겨난 과정을 설명하는 대담한 가설을 내놓았다. 대이동이 끝난 직후 이 땅에는 부족 nn개가 살았고, 각 부족이 차지한 영토는 지도에서 지도의 변과 평행한 직사각형이다. 영토끼리 겹칠 수 있어서 여러 문화가 만나는 지역도 있었다.

가설의 내용은 이렇다. 두 부족의 영토가 겹치는 부분의 넓이가 0보다 크면 얼마 뒤 두 부족은 하나로 합쳐진다. 새로 생긴 부족은 이전 두 영토를 모두 포함하는 가장 작은 직사각형까지 퍼져 나간다. 이 직사각형의 변도 지도의 변과 평행하다. 이 과정은 어떤 두 영토를 골라도 겹치는 부분의 넓이가 0이 될 때까지 이어지고, 그때 남은 영토가 첫 국가가 된다.

합치는 순서를 어떻게 정하든 마지막에 남는 영토의 집합은 같다.

교수가 건넨 처음 부족들의 지도를 바탕으로 가설대로 과정을 재현해서, 국가들의 영토를 구하라.

입력

첫 줄에 바이트피아에 살던 부족의 수 nn (1≤n≤100 0001 \le n \le 100\,000)이 주어진다.

다음 nn개 줄에는 각각 정수 네 개 x1x_1, x2x_2, y1y_1, y2y_2 (0≤x1<x2≤1 000 0000 \le x_1 < x_2 \le 1\,000\,000, 0≤y1<y2≤1 000 0000 \le y_1 < y_2 \le 1\,000\,000)가 주어진다. 이는 어떤 부족이 지도에서 (x1,y1)(x_1, y_1)과 (x2,y2)(x_2, y_2)를 마주 보는 두 꼭짓점으로 하는 직사각형을 영토로 삼았다는 뜻이다.

출력

첫 줄에 가설에 따라 생겨나는 국가의 수 mm을 출력한다.

이어지는 mm개 줄에는 각 국가의 영토를 정수 네 개 x1x_1, x2x_2, y1y_1, y2y_2로, 공백 하나씩으로 구분해 출력한다. 이는 그 국가의 영토가 (x1,y1)(x_1, y_1)과 (x2,y2)(x_2, y_2)를 마주 보는 두 꼭짓점으로 하는 직사각형이라는 뜻이며, x1<x2x_1 < x_2이고 y1<y2y_1 < y_2이다.

네 수로 이루어진 순서쌍은 모두 서로 다르며, 사전순으로 출력한다. 즉 x1x_1을 먼저 비교하고, 같으면 x2x_2, 그다음 y1y_1, 마지막으로 y2y_2를 비교한 순서대로 출력한다.

예제4

  1. 예제 1

    입력
    5
    7 8 1 4
    1 5 2 3
    4 5 2 7
    2 3 5 9
    4 6 8 9
    
    예상 출력
    2
    1 6 2 9
    7 8 1 4
    
  2. 예제 2

    입력
    1
    0 1000000 0 1000000
    
    예상 출력
    1
    0 1000000 0 1000000
    
  3. 예제 3

    입력
    4
    0 1 0 1
    1 2 0 1
    0 1 1 2
    1 2 1 2
    
    예상 출력
    4
    0 1 0 1
    0 1 1 2
    1 2 0 1
    1 2 1 2
    
  4. 예제 4

    입력
    2
    0 10 0 10
    3 4 3 4
    
    예상 출력
    1
    0 10 0 10