누리카베
면접 대비시간 제한1초메모리 제한256 MB
번호가 적힌 섬마다 크기가 숫자와 같은지, 물칸이 하나로 연결되는지, 2x2 구역에 물칸만 있지 않은지 확인합니다.
문제

누리카베는 일본에서 만들어진 펜슬 퍼즐이다. 직사각형 격자가 주어지고, 각 칸은 섬 칸(흰색)이거나 물 칸(검은색)이다. 섬 칸 중 일부에는 1 이상 9 이하의 숫자가 적혀 있다. 다음 세 조건을 모두 만족하는 판을 올바르게 채운 판이라고 한다.
- 두 칸이 변을 맞대고 있으면 두 칸은 인접하다. 인접한 섬 칸을 따라 서로 이어지는 섬 칸의 모임을 하나의 섬이라고 한다. 모든 섬에는 숫자가 적힌 칸이 정확히 하나 있고, 그 섬에 속한 칸의 개수는 그 숫자와 같다.
- 모든 물 칸은 같은 인접 규칙으로 하나로 이어져 있다.
- 네 칸이 모두 물인 2×2 블록은 없다. 즉 격자의 모든 2×2 블록에는 섬 칸이 적어도 하나 있다.
채워진 판이 올바른지 판정하라.
적용할 대상이 없는 조건은 만족한 것으로 본다. 물 칸이 하나도 없는 판은 두 번째 조건을 만족하고, 행이 하나이거나 열이 하나인 판에는 2×2 블록이 없다.
입력
첫 줄에 판의 개수 가 주어진다.
각 판의 첫 줄에는 행의 수 과 열의 수 이 공백으로 구분되어 주어진다. 이어지는 개의 줄에 판의 각 행이 한 줄씩 주어진다. 각 행은 123456789.#에 속하는 문자 개로 이루어진 문자열이다. #는 물 칸, 숫자는 숫자가 적힌 섬 칸, .은 숫자가 적히지 않은 섬 칸이다.
출력
각 판마다 올바르게 채운 판이면 YES, 아니면 NO를 한 줄에 출력한다.