提出 #31376307
ソースコード 拡げる
DI = [0, -1, 0, 1]
DJ = [-1, 0, 1, 0]
m = int(input())
n = int(input())
a = [list(map(int, input().split())) for i in range(n)]
visited = [[0] * m for i in range(n)]
answer = 0
def dfs(i, j, d):
global visited
global answer
answer = max(answer, d)
visited[i][j] = 1
for k in range(4):
nextI = i + DI[k]
nextJ = j + DJ[k]
if not 0 <= nextI < n or not 0 <= nextJ < m:
continue
if a[nextI][nextJ] == 1 and visited[nextI][nextJ] == 0:
dfs(nextI, nextJ, d + 1)
visited[i][j] = 0
for i in range(n):
for j in range(m):
if a[i][j] == 1:
dfs(i, j, 1)
print(answer)
提出情報
ジャッジ結果
| セット名 | set01 | set02 | set03 | set04 | set05 | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 得点 / 配点 | 20 / 20 | 20 / 20 | 20 / 20 | 20 / 20 | 20 / 20 | ||||||||||
| 結果 |
|
|
|
|
|
| セット名 | テストケース |
|---|---|
| set01 | data1 |
| set02 | data2 |
| set03 | data3 |
| set04 | data4 |
| set05 | data5 |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| data1 | AC | 68 ms | 62436 KiB |
| data2 | AC | 91 ms | 74716 KiB |
| data3 | AC | 120 ms | 76064 KiB |
| data4 | AC | 90 ms | 74796 KiB |
| data5 | AC | 176 ms | 77584 KiB |