r, c, t = map(int, input().split())
g = [list(map(int, input().split())) for _ in range(r)]
dx = [-1, 1, 0, 0]
dy = [0, 0, -1, 1]
for i in range(r):
if g[i][0] == -1:
sx1, sx2 = i, i+1
break
def spread(g):
tmp = [[0] * c for _ in range(r)]
tmp[sx1][0] = -1
tmp[sx2][0] = -1
for x in range(r):
for y in range(c):
if g[x][y] == -1 or g[x][y] == 0:
continue
cnt = 0
for i in range(4):
nx, ny = x + dx[i], y + dy[i]
if nx < 0 or ny < 0 or nx >= r or ny >= c or g[nx][ny] == -1:
continue
tmp[nx][ny] += int(g[x][y] / 5)
cnt += 1
tmp[x][y] += g[x][y] - (cnt * int(g[x][y] / 5))
return tmp
def clean(g):
for i in range(sx1-2, -1, -1):
g[i+1][0] = g[i][0]
for i in range(1, c):
g[0][i-1] = g[0][i]
for i in range(1, sx1+1):
g[i-1][c-1] = g[i][c-1]
for i in range(c-2, 0, -1):
g[sx1][i+1] = g[sx1][i]
g[sx1][1] = 0
for i in range(sx2+2, r):
g[i-1][0] = g[i][0]
for i in range(1, c):
g[r-1][i-1] = g[r-1][i]
for i in range(r-2, sx2-1, -1):
g[i+1][c-1] = g[i][c-1]
for i in range(c-2, 0, -1):
g[sx2][i+1] = g[sx2][i]
g[sx2][1] = 0
return g
for _ in range(t):
g = spread(g)
g = clean(g)
ans = 0
for i in range(r):
for j in range(c):
if g[i][j] <= 0:
continue
ans += g[i][j]
print(ans)
하라는대로 구현
공기를 회전시키는게 헷갈려서 오래걸림 -> 그림그리면 안헷갈린다...