촛불과 촛불과 촛불과 그림자

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

요약
빨간 볼록 다각형 안에 서로 겹치지 않는 K개의 파란 볼록 다각형이 있고 빨강, 초록, 파랑 점광원이 주어질 때, 각 색 조합으로 밝혀지는 영역과 그림자 영역의 넓이를 구한다.
난이도

어려움10점 중 9점

유형
기하, 구현, 완전 탐색, 조합론
정답자
아직 제출이 없습니다

문제

꼭짓점이 (A_1A\_1,B_1B\_1), (A_2A\_2,B_2B\_2),⋯\cdots, (A_NA\_N,B_NB\_N)인 빨간색 볼록 NN각형과, 각각 꼭짓점이 (C_1C\_1, D_1D\_1), (C_2C\_2, D_2D\_2),⋯\cdots,(C_M_kC\_{M\_k}, D_M_kD\_{M\_k})인 파란색 볼록 M_kM\_k각형이 KK개 있다.

아래 그림과 같이 촛불을 설치하면 노란색 영역이 밝아지고, 회색 영역에는 그림자가 생긴다.

촛불로 밝혀진 영역과 어두운 영역

노란빛 촛불만 옮기며 노는 게 질린 진홍이는 빨강(Red), 초록(Green), 파랑(Blue) 빛이 나는 촛불을 하나씩 구해왔다.

각각의 빛이 섞일 때 합성되는 색의 결과는 아래와 같다.

  • 빨강(Red) + 초록(Green) = 노랑(Yellow)
  • 빨강(Red) + 파랑(Blue) = 마젠타(Magenta)
  • 초록(Green) + 파랑(Blue) = 시안(Cyan)
  • 빨강(Red) + 초록(Green) + 파랑(Blue) = 하양(White)

그리고 모든 빛이 닿지 않아 그림자가 생기는 영역은 검정(Black)으로 표현할 수 있다.

빨간색 볼록 NN각형과 KK개의 파란색 볼록 M_kM\_k각형의 좌표와 빨강, 초록, 파랑 빛 촛불의 위치가 주어질 때, 빨강, 초록, 파랑, 노랑, 마젠타, 시안, 하양, 검정 영역의 넓이를 구해보자.

단, 빛이 무한대로 뻗어가기 때문에 빨간색 NN각형 외부에 있는 촛불은 관찰 대상에서 제외한다.

각 촛불은 면적이 없는 점으로 가정한다. 어떠한 촛불도 없는 다각형의 내부는 검정이다.

빨간색 및 파란색 다각형 안에 있는 빛나는 영역의 넓이 및 그림자의 넓이를 모두 구해야 한다.

입력

첫째 줄에 빨간색 볼록 다각형의 꼭짓점 수 NN이 주어진다. (3≤N≤50)(3 \le N \le 50)

둘째 줄부터 NN개의 줄에 걸쳐 빨간색 볼록 다각형의 꼭짓점 정보를 나타내는 두 정수 좌표 A_iA\_i와 B_iB\_i가 공백으로 구분되어 반시계 방향으로 주어진다. (−1,000≤A_i,B_i≤1,000)(-1\\,000 \le A\_i, B\_i \le 1\\,000)

N+2N+2째 줄에 파란색 볼록 다각형의 총수를 나타내는 정수 KK가 주어진다. (1≤K≤16)(1 \le K \le 16)

이후 KK개의 파란색 볼록 다각형에 대한 정보가 아래 형식으로 주어진다.

  • 첫째 줄에 kk번째 파란색 볼록 다각형의 꼭짓점 수 M_kM\_k가 주어진다. (1≤k≤K; 3≤M_k≤50; 3≤∑M_k≤50)(1 \le k \le K;\ 3 \le M\_k \le 50;\ 3 \le \sum{M\_k} \le 50)
  • 다음 M_kM\_k개의 줄에 걸쳐 kk번째 파란색 볼록 다각형의 꼭짓점 정보를 나타내는 두 정수 좌표 C_kjC\_{kj}와 D_kjD\_{kj}가 공백으로 구분되어 반시계 방향으로 주어진다. (1≤j≤M_k; −1,000≤C_kj,D_kj≤1,000)(1 \le j \le M\_k;\ -1\\,000 \le C\_{kj}, D\_{kj} \le 1\\,000)

마지막 줄에는 빨강, 초록, 파랑 빛 촛불을 설치할 33개의 좌표를 나타내는 66개의 정수 R_xR\_{x} R_yR\_{y} G_xG\_{x} G_yG\_{y} B_xB\_{x} B_yB\_{y}가 공백으로 구분되어 주어진다. (−1,000≤R_x,R_y,G_x,G_y,B_x,B_y≤1,000)(-1\\,000 \le R\_{x}, R\_{y}, G\_{x}, G\_{y}, B\_{x}, B\_{y} \le 1\\,000)

모든 파란색 볼록 다각형들은 빨간색 볼록 다각형 내부에 완전하게 포함된다. 또한 서로 다른 두 개의 파란색 다각형은 서로 겹치거나 만나지 않는다.

모든 다각형의 두께는 00으로 가정하며, 촛불이 다각형의 변 위에 놓여있는 상황은 주어지지 않는다.

각 다각형에서 세 점이 일직선상에 놓여 있는 경우는 주어지지 않으며, 각 다각형의 넓이는 00보다 크다. 단, 서로 다른 두 다각형에 포함된 세 점은 일직선상에 있을 수 있다.

출력

88개의 줄에 걸쳐 빨강, 초록, 파랑, 노랑, 마젠타, 시안, 하양, 검정 영역의 넓이를 순서대로 출력한다.

실제 정답과 출력값의 절대 오차 또는 상대 오차가 10−610^{-6} 이하라면 정답으로 인정한다.

예제3

  1. 예제 1

    입력
    4
    -4 -4
    4 -4
    4 4
    -4 4
    1
    4
    -1 -1
    1 -1
    1 1
    -1 1
    0 0 3 3 6 6
    
    예상 출력
    4.0000000000000
    43.5000000000000
    0.0000000000000
    0.0000000000000
    0.0000000000000
    0.0000000000000
    0.0000000000000
    16.5000000000000
    
  2. 예제 2

    입력
    4
    0 0
    1000 0
    1000 1000
    0 1000
    1
    4
    400 300
    600 300
    600 700
    400 700
    300 500 700 500 500 200
    
    예상 출력
    217500.0000000000000
    217500.0000000000000
    20000.0000000000000
    5000.0000000000000
    217500.0000000000000
    217500.0000000000000
    5000.0000000000000
    100000.0000000000000
    
  3. 예제 3

    입력
    4
    0 0
    10 0
    10 4
    0 4
    3
    4
    1 1
    3 1
    3 3
    1 3
    4
    4 1
    6 1
    6 3
    4 3
    4
    7 1
    9 1
    9 3
    7 3
    2 2 5 2 8 2
    
    예상 출력
    4.0000000000000
    4.0000000000000
    4.0000000000000
    0.0000000000000
    0.0000000000000
    0.0000000000000
    0.0000000000000
    28.0000000000000