/ ALGORITHM

백준 - 유기농 배추(#1012)

백준 1012

image-20230209012646735image-20230209012731406

import sys
sys.setrecursionlimit(10000)
input = sys.stdin.readline

dx = [1,-1,0,0]
dy = [0,0,1,-1]

def dfs(x,y):
    for i in range(4):
        nx = x + dx[i]
        ny = y + dy[i]
        if nx<0 or ny<0 or nx>N-1 or ny>M-1:
            continue
        if maps[nx][ny]==1:
            maps[nx][ny]=0
            dfs(nx,ny)
    
answer = []

T = int(input())
for _ in range(T):
    N,M,K = map(int,input().split())
    maps = [[0]*M for _ in range(N)]

    for j in range(K):
        a,b = map(int,input().split())
        maps[a][b]=1

    count = 0
    for k in range(N):
        for l in range(M):
            if maps[k][l]==1:
                maps[k][l]=0
                dfs(k,l)
                count+=1
    answer.append(count)
    
for i in answer:
    print(i)