提出 #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)

提出情報

提出日時
問題 D - 薄氷渡り
ユーザ Pro_ktmr
言語 PyPy3 (7.3.0)
得点 100
コード長 683 Byte
結果 AC
実行時間 176 ms
メモリ 77584 KiB

ジャッジ結果

セット名 set01 set02 set03 set04 set05
得点 / 配点 20 / 20 20 / 20 20 / 20 20 / 20 20 / 20
結果
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
セット名 テストケース
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