구멍 난 케이크 자르기

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

요약
중앙에 정사각형 구멍이 있는 케이크를 여러 개의 가로선과 세로선으로 자를 때 케이크에 실제로 닿는 부분만 잘린다고 할 때 생기는 조각의 개수를 구하는 문제입니다.
난이도

보통10점 중 6점

유형
기하, 유니온 파인드, BFS, 시뮬레이션
정답자
아직 제출이 없습니다

문제

태수는 생일 선물로 특별한 케이크를 받았다. 위에서 보면 이 케이크는 큰 정사각형에서, 중심이 같은 작은 정사각형 구멍을 뺀 모양이다.

큰 정사각형과 구멍의 중심은 모두 (0, 0)이고, 모든 변은 x축 또는 y축과 평행하다. 큰 정사각형 한 변의 절반 길이는 LC, 구멍 한 변의 절반 길이는 LH이다.

케이크를 수평으로 H번, 수직으로 V번 자른다. i번째 수평 절단은 x축과 평행한 직선 y = h_i 전체를 따라 이루어지고, i번째 수직 절단은 y축과 평행한 직선 x = v_i 전체를 따라 이루어진다. 절단 직선이 구멍을 지나면 실제 케이크와 만나는 부분만 잘린다.

모든 절단을 끝낸 뒤 케이크가 몇 조각으로 나뉘는지 구하라.

입력

첫째 줄에 LC와 LH가 주어진다.

둘째 줄에 H가 주어진다. 셋째 줄에 H개의 정수 h_i가 공백으로 구분되어 주어진다.

넷째 줄에 V가 주어진다. 다섯째 줄에 V개의 정수 v_i가 공백으로 구분되어 주어진다.

H가 0이면 셋째 줄은 빈 줄이고, V가 0이면 다섯째 줄은 빈 줄이다.

출력

첫째 줄에 케이크 조각의 개수를 출력한다.

제한

  • 2 <= LC <= 100
  • 1 <= LH <= LC - 1
  • 0 <= H, V <= 50
  • -LC + 1 <= h_i, v_i <= LC - 1

예제4

  1. 예제 1

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

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

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

    입력
    50 5
    2
    40 -40
    3
    20 0 -20
    
    예상 출력
    12