아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

대회 장소 준비

면접 대비

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

요약
빈칸이 있는 N행 M열 좌석표에서 킹 이동으로 인접한 두 칸에 같은 학교 팀이 앉은 학교 수를 셉니다.
난이도

쉬움10점 중 2점

유형
행렬, 구현
정답자
아직 제출이 없습니다

문제

지역 프로그래밍 대회가 열리기 전, 현장 담당관과 자원봉사자는 아주 바쁘다. 그 일 중 하나가 대회장의 테이블을 배치해서 인접한 두 테이블에는 서로 다른 학교의 팀이 앉게 만드는 것이다.

손으로 하기에는 번거로운 일이라 보통 프로그램에 맡긴다. 올해는 심사위원단이 이 일을 맡았다. 배치를 끝낸 뒤 심사위원단은 이 좌석 배치 문제가 대회 문제로 쓸 만하다고 생각했고, 그중 일부를 이렇게 출제했다.

심사위원단의 프로그램은 단순하게 동작한다. 먼저 좌석을 임의로 배치한다. 그다음 인접한 두 좌석에 같은 학교의 팀이 앉은 곳이 있는지 확인한다. 그런 곳이 있으면 이 배치로 이득을 보는 학교, 즉 같은 학교의 두 팀이 인접한 좌석에 앉은 학교가 몇 개인지 센다.

대회장은 NN개의 행과 MM개의 열로 이루어진 표로 나타낸다. 각 칸에는 팀 하나가 앉거나 아무도 앉지 않는다. 한 팀에 인접한 팀은 최대 8개다. 좌석이 표의 가장자리에 있거나 주변에 빈 칸이 있으면 인접한 팀이 8개보다 적다.

예를 들어 다음 배치에서 점은 빈 좌석이다.

A B C
D E F
G H .

팀 E는 A, B, C, D, F, G, H와 인접하므로 인접한 팀이 7개다. 팀 A는 B, D, E와 인접하므로 3개다.

입력

첫 줄에 테스트 케이스의 수 TT가 주어진다. (1≤T≤1001 \le T \le 100)

각 테스트 케이스의 첫 줄에 대회장의 행 수 NN과 열 수 MM이 주어진다. (1≤N,M≤1001 \le N, M \le 100)

이어지는 NN개의 줄에는 줄마다 MM개의 정수가 주어진다. ii번째 줄의 jj번째 수는 ii행 jj열 좌석에 앉은 팀의 학교 번호이며 1 이상 100 이하다. 이 수가 −1-1이면 그 좌석은 비어 있다.

출력

각 테스트 케이스마다 같은 학교의 두 팀이 인접한 좌석에 앉은 학교의 수를 한 줄에 출력한다.

예제1

  1. 예제 1

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