만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

달고나

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

요약
평면 위에 주어진 원과 단순 다각형들이 나누는 영역의 개수를 구합니다.
난이도

보통10점 중 7점

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

문제

서강대학교 K관 512호 랩실에 달고나 기계가 생겼다. 달고나 기계 옆에는 뽑기를 위해 원 또는 단순 다각형 모양의 모형 틀이 준비되어 있다. 일반적으로 모형 틀의 모양에 따라 뽑기의 난이도가 정해진다. 하지만 어떤 모양도 뽑기 장인 상원이를 만족시키지 못한다. 뽑기가 너무 쉬워 고민이던 상원이는 더 어려운 뽑기를 만드는 방법을 떠올렸다. 여러 가지 모형 틀을 한 뽑기 안에 찍으면 뽑아야 할 조각의 수가 많아져 더 어려워질 것이다!

2차원 평면 위에 원 또는 단순 다각형 모양의 도형들이 주어졌을 때, 평면이 몇 개의 영역으로 나뉘는지 구하는 프로그램을 작성하시오.

그림 1: 첫 번째 입력 예시에 따른 뽑기 모양이다.

입력

입력은 다음과 같이 주어진다.

NN

poly_1poly\_1

poly_2poly\_2

......

poly_Npoly\_N

  • poly_ipoly\_i는 각 도형의 정보이다.

    • 원인 경우, poly_ipoly\_i는 다음과 같이 주어진다.

      1 x y r1 \ x \ y \ r

      • 중심이 (x, yx,\ y)이고 반지름이 rr인 원이다. (−10 000≤x, y≤10 000, 1≤r≤10 000-10\,000 \le x,\ y \le 10\,000,\ 1 \le r \le 10\,000)
    • 단순 다각형인 경우, poly_ipoly\_i는 다음과 같이 주어진다.

      m x_1 y_1 x_2 y_2 ... x_m y_mm \ x\_1 \ y\_1 \ x\_2 \ y\_2 \ ... \ x\_m \ y\_m

      • mm은 단순 다각형을 이루는 꼭짓점의 개수이다.
      • (x_i, y_ix\_i,\ y\_i)는 각 꼭짓점의 좌표이다. (−10 000≤x_i, y_i≤10 000-10\,000 \le x\_i,\ y\_i \le 10\,000)
      • 각 꼭짓점은 반시계 방향 순서로 주어진다.

출력

도형들로 인해 나뉘는 영역의 수를 출력한다.

제한

  • NN은 도형의 개수이다. (1≤N≤2 0001 \le N \le 2\,000)
  • 모든 단순 다각형의 선분 개수와 원의 개수의 합은 2 0002\,000을 넘지 않는다.
  • 세 개 이상의 원 또는 선분이 한 점을 지나는 경우는 주어지지 않는다.
  • 입력으로 주어지는 모든 수는 정수다.

예제3

  1. 예제 1

    입력
    6
    7 3 5 1 2 2 2 0 -2 6 -2 4 2 5 2
    4 2 0 2 -4 4 -4 4 0
    1 16 2 2
    7 20 0 12 0 14 -2 14 -6 16 -4 18 -6 18 -2
    1 13 8 2
    1 10 8 3
    
    예상 출력
    9
    
  2. 예제 2

    입력
    4
    4 750 250 -750 250 -750 -250 750 -250
    1 0 0 250
    1 500 0 250
    1 -500 0 250
    
    예상 출력
    12
    
  3. 예제 3

    입력
    6
    1 1 1 1
    1 1 1 2
    1 0 1 1
    1 2 1 1
    1 6 1 1
    3 7 2 5 2 5 0
    
    예상 출력
    14