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

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

대륙

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

요약
최대 8000개 경계 선분이 이루는 나라 개수를 세고 각 넓이를 오름차순으로 출력합니다.
난이도

보통10점 중 7점

유형
그래프, 기하, 정렬
정답자
아직 제출이 없습니다

문제

코르넬리아는 주변 세계에 대한 호기심이 아주 많습니다. 저녁마다 가장 좋아하는 책 "어린이를 위한 지리"를 펼쳐 먼 대륙의 낯선 나라들을 공부하지요.

책의 각 장은 하나의 대륙을 다루며, 그 대륙의 정치 지도가 장의 첫 페이지에 실려 있습니다. 다만 "실려 있다"는 말은 조금 과장인데, 사실 지도는 직접 복원해야 하기 때문입니다. 페이지 여백에는 그 대륙의 나라 경계를 이루는 모든 선분의 좌표만 적혀 있습니다. 코르넬리아가 할 일은 이 선분들을 지도에 옮겨 그린 뒤 각 나라를 서로 다른 색으로 칠하는 것입니다. 코르넬리아는 색연필이 몇 자루 필요한지(즉 나라가 몇 개인지), 그리고 각 색으로 칠해야 할 나라의 넓이가 얼마인지 알고 싶어 합니다. 이 계산을 도와주세요.

입력

첫째 줄에 테스트 케이스의 개수 ZZ (1≤Z≤101 \le Z \le 10)가 주어집니다. 이어서 각 테스트 케이스가 차례로 주어집니다.

각 테스트 케이스의 첫째 줄에는 대륙의 나라 경계를 이루는 선분의 개수 NN (3≤N≤80003 \le N \le 8000)이 주어집니다. 이어지는 NN개의 줄에는 각각 네 정수 x1,y1,x2,y2x_1, y_1, x_2, y_2 (0≤x1,y1,x2,y2≤100000 \le x_1, y_1, x_2, y_2 \le 10000)가 주어지며, 이는 두 점 (x1,y1)(x_1, y_1)과 (x2,y2)(x_2, y_2)를 잇는 선분을 뜻합니다.

모든 선분은 길이가 0보다 크며, 서로 다른 두 나라 사이 경계의 일부이거나, 대륙(지도)의 가장자리에 있는 한 나라 경계의 일부입니다. 어떤 두 선분도 서로 교차하지 않으며, 만나더라도 끝점에서만 닿습니다. 각 나라는 구멍이 없는 단순 다각형 모양입니다.

출력

각 테스트 케이스마다 먼저 대륙에 있는 나라의 개수 PP를 한 줄에 출력합니다. 다음 줄에는 각 나라의 넓이 PP개를 한 칸 공백으로 구분하여 출력합니다. 넓이는 오름차순(같은 값 허용)으로 정렬하고, 소수점 아래 정확히 한 자리까지 출력합니다.

예제3

  1. 예제 1

    입력
    2
    5
    0 0 1 0
    1 0 1 1
    1 1 0 1
    0 0 0 1
    1 1 0 0
    12
    1 1 1 4
    0 0 4 0
    6 3 4 0
    4 1 6 3
    2 1 4 1
    2 1 0 0
    3 2 2 1
    4 1 4 0
    2 1 1 1
    1 4 6 3
    4 1 3 2
    0 0 1 4
    
    예상 출력
    2
    0.5 0.5
    5
    1.0 1.0 2.0 3.0 9.5
    
  2. 예제 2

    입력
    1
    4
    0 0 1 0
    1 0 1 1
    1 1 0 1
    0 1 0 0
    
    예상 출력
    1
    1.0
    
  3. 예제 3

    입력
    1
    7
    0 0 1 0
    1 0 2 0
    2 0 2 1
    2 1 1 1
    1 1 0 1
    0 1 0 0
    1 0 1 1
    
    예상 출력
    2
    1.0 1.0