Submission #31376307


Source Code Expand

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)

Submission Info

Submission Time
Task D - 薄氷渡り
User Pro_ktmr
Language PyPy3 (7.3.0)
Score 100
Code Size 683 Byte
Status AC
Exec Time 176 ms
Memory 77584 KiB

Judge Result

Set Name set01 set02 set03 set04 set05
Score / Max Score 20 / 20 20 / 20 20 / 20 20 / 20 20 / 20
Status
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
Set Name Test Cases
set01 data1
set02 data2
set03 data3
set04 data4
set05 data5
Case Name Status Exec Time Memory
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