섬

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

요약
여러 해수면 높이에 대해, 물에 잠기지 않은 칸들이 이루는 연결 영역의 수를 구한다.
난이도

보통10점 중 7점

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

문제

카리브해 깊은 곳에 직사각형 모양의 섬이 있다. 이 섬은 n×mn \times m 격자로 나뉘어 있으며, 각 칸에는 미터 단위의 고정된 높이가 있다.

해수면은 계속 높아진다. ii년째의 해수면은 정확히 ii미터이다. 섬은 스펀지로 이루어져 있어 물이 자유롭게 스며들기 때문에, 어떤 칸의 높이가 현재 해수면 이하이면 그 칸은 잠긴 것으로 본다. 잠기지 않은 칸들 중 변을 맞대고 인접한 칸들은 하나의 잠기지 않은 영역(연결된 구역)을 이룬다.

여러 해에 대해, 섬에 잠기지 않은 영역이 몇 개인지 구하여라.

아래 그림은 4×54 \times 5 섬을 나타낸다. 숫자는 각 칸의 높이(미터)이고, 잠기지 않은 칸은 더 진하게 표시되어 있다. 1년째에는 잠기지 않은 영역이 2개, 2년째에는 3개이다.

1년째2년째
1년째2년째

입력

첫 번째 줄에 테스트 케이스의 수 ZZ (Z≤20Z \le 20)가 주어진다. 각 테스트 케이스는 다음과 같이 주어진다.

첫 번째 줄에 섬의 크기를 나타내는 두 정수 nn과 mm (1≤n,m≤10001 \le n, m \le 1000)이 주어진다. 이어지는 nn개의 줄에는 각각 mm개의 정수가 주어지며, 이는 각 칸의 높이로 [1,109][1, 10^9] 범위의 값이다. 다음 줄에는 정수 TT (1≤T≤1051 \le T \le 10^5)가 주어진다. 마지막 줄에는 0≤t1≤t2≤⋯≤tT≤1090 \le t_1 \le t_2 \le \cdots \le t_T \le 10^9을 만족하는 TT개의 정수 t1,t2,…,tTt_1, t_2, \ldots, t_T가 주어진다. 이는 질의할 해수면(연도)이다.

출력

각 테스트 케이스마다, 공백으로 구분된 TT개의 정수 r1,r2,…,rTr_1, r_2, \ldots, r_T를 한 줄에 출력한다. 여기서 rjr_j는 해수면이 tjt_j일 때 잠기지 않은 영역의 개수이다.

예제5

  1. 예제 1

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

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

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

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

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