restructure zeta/** to storage/zeta/**

This commit is contained in:
2025-05-10 21:54:24 +09:00
parent 2886820691
commit 2f2e0759fd
407 changed files with 7 additions and 1 deletions

View File

@@ -0,0 +1,50 @@
def find_group(Map, M, N, i, j):
ret = []
temp = []
temp.append((i, j))
while temp:
t = temp.pop()
if t in ret:
continue
if 1 <= t[0]:
if Map[t[0] - 1][t[1]]:
temp.append((t[0] - 1, t[1]))
if t[0] < M - 1:
if Map[t[0] + 1][t[1]]:
temp.append((t[0] + 1, t[1]))
if 1 <= t[1]:
if Map[t[0]][t[1] - 1]:
temp.append((t[0], t[1] - 1))
if t[1] < N - 1:
if Map[t[0]][t[1] + 1]:
temp.append((t[0], t[1] + 1))
ret.append(t)
return ret
def solve(M, N, Ks):
Map = [[0 for _ in range(N)] for _ in range(M)]
count = 0
found = {}
for k in Ks:
Map[k[0]][k[1]] = 1
for i in range(M):
for j in range(N):
if Map[i][j]:
if (i, j) in found:
continue
else:
r = find_group(Map, M, N, i, j)
count += 1
for s in r:
found[s] = count
return count
if __name__ == '__main__':
T = int(input())
for _ in range(T):
M, N, K = map(int, input().split())
Ks = [tuple(map(int, input().split())) for _ in range(K)]
print(solve(M, N, Ks))