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

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

지도 색칠하기 익스트림

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

요약
각 나라를 나타내는 단순 다각형이 주어질 때 양의 길이를 가진 변을 공유하면 인접하다고 보고, 인접 그래프의 색칠수 최솟값을 구한다.
난이도

어려움10점 중 8점

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

문제

다른 세계로 넘어온 당신은 그 세계의 지도를 한 장 얻었다. 이 세계에는 여러 나라가 있다. 각 나라의 영토는 하나로 이어져 있고, 지도에는 국경선으로 둘러싸인 2차원 평면 위의 단순 다각형으로 그려져 있다.

이 세계가 낯선 당신은 나라를 구분하려고 지도에 색을 칠하려 한다. 인접한 두 나라를 같은 색으로 칠하면 구분하기 어려우니, 인접한 나라는 서로 다른 색으로 칠하려 한다. 여기서 두 나라의 국경선에 길이가 0보다 큰 공통 선분이 하나라도 있으면 두 나라가 인접하다고 정의한다. 국경선이 점에서만 닿는 두 나라는 인접하지 않다.

이 세계의 화폐가 없어서 색을 많이 준비하기는 어렵다. 인접한 나라를 서로 다른 색으로 칠하려면 색이 최소 몇 개 필요한가?

입력

입력은 여러 개의 데이터 세트로 이루어진다. 데이터 세트의 개수는 35개 이하이다.

각 데이터 세트의 형식은 다음과 같다.

n
m1
x1,1 y1,1
:
:
x1,m1 y1,m1
:
:
mn
xn,1 yn,1
:
:
xn,mn yn,mn

각 데이터 세트의 첫 줄에는 이 세계의 나라 수를 나타내는 정수 nn (1≤n≤351 \le n \le 35)이 주어진다.

그다음에는 nn개 나라를 나타내는 다각형 정보가 이어진다. ii번째 다각형 정보의 첫 줄에는 꼭짓점 수를 나타내는 정수 mim_i (3≤mi≤503 \le m_i \le 50)가 주어진다. 이어지는 mim_i개 줄에는 꼭짓점의 좌표가 반시계 방향 순서로 주어진다. 그중 jj번째 줄에는 ii번째 다각형의 jj번째 꼭짓점 좌표를 나타내는 두 정수 xi,jx_{i,j}와 yi,jy_{i,j} (∣xi,j∣,∣yi,j∣≤103|x_{i,j}|, |y_{i,j}| \le 10^3)가 주어진다.

다음은 가정해도 된다.

  • 각 다각형의 넓이는 0보다 크다.
  • 같은 다각형의 두 꼭짓점은 좌표가 서로 다르다.
  • 같은 다각형의 두 선분은 각 꼭짓점에서 정확히 두 선분이 만나는 경우를 빼면 공통점이 없다.
  • 두 다각형이 겹치는 넓이는 없다.

입력의 끝은 0 하나만 있는 줄로 표시한다.

출력

각 데이터 세트마다 인접한 나라를 서로 다른 색으로 칠할 때 필요한 색의 최소 개수를 한 줄에 출력한다.

예제3

  1. 예제 1

    입력
    1
    3
    0 0
    1 0
    0 1
    4
    4
    0 0
    10 0
    10 10
    0 10
    4
    10 0
    20 0
    20 10
    10 10
    4
    0 10
    10 10
    10 20
    0 20
    4
    10 10
    20 10
    20 20
    10 20
    3
    4
    -10 -10
    2 2
    10 10
    -11 7
    3
    -1 -1
    1 -1
    0 0
    3
    0 0
    3 -3
    20 20
    7
    4
    46 12
    52 12
    53 15
    45 15
    32
    67 1
    70 0
    73 1
    77 3
    79 5
    80 8
    77 8
    76 5
    74 4
    71 3
    70 3
    67 4
    65 6
    63 8
    62 14
    64 19
    66 21
    70 22
    75 21
    78 16
    80 16
    80 17
    79 20
    78 22
    74 24
    67 24
    63 22
    61 19
    60 15
    60 10
    62 5
    64 3
    5
    74 14
    80 14
    80 16
    78 16
    74 16
    19
    34 0
    37 0
    37 19
    36 22
    35 23
    32 24
    30 24
    27 24
    25 23
    23 20
    23 18
    23 15
    26 15
    26 18
    27 20
    29 21
    32 21
    34 20
    34 18
    4
    47 0
    50 0
    42 24
    39 24
    4
    79 20
    80 17
    80 22
    78 22
    4
    50 0
    58 24
    56 24
    49 3
    4
    10
    34 21
    34 14
    35 14
    35 19
    40 19
    40 20
    35 20
    35 22
    30 22
    30 21
    16
    20 24
    21 24
    21 33
    42 33
    42 20
    40 20
    40 19
    45 19
    45 5
    40 5
    40 4
    46 4
    46 20
    43 20
    43 34
    20 34
    10
    26 21
    26 14
    27 14
    27 21
    30 21
    30 22
    21 22
    21 24
    20 24
    20 21
    12
    34 8
    34 4
    40 4
    40 5
    35 5
    35 14
    34 14
    34 9
    27 9
    27 14
    26 14
    26 8
    0
    
    예상 출력
    1
    2
    3
    3
    4
    
  2. 예제 2

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

    입력
    2
    4
    0 0
    10 0
    10 5
    0 5
    4
    0 5
    10 5
    10 10
    0 10
    2
    4
    0 0
    10 0
    10 5
    0 5
    4
    5 5
    15 5
    15 10
    5 10
    0
    
    예상 출력
    2
    2