題解
題目有說m, n<=50,且每一格的數字都介於0~9。所以可以對於每一個點都畫一個矩形再用if-else判斷是否為距離內的數字,不會TLE。
Python 解答
def check(dis, r, c):
tmp = 0
rhead, rend = r-dis, r+dis
if rhead<0:
rhead=0
if rend>=n:
rend= n-1
for i in range(rhead, rend+1): #控制row
chead, cend = c-dis, c+dis
if chead<0:
chead=0
if cend>=m:
cend=m-1
for j in range(chead, cend+1): #控制col
if abs(r-i)+abs(c-j)<=dis: #是否在曼哈頓距離中才加總
tmp += k[i][j]
if tmp%10==dis%10:
return True
return False
n, m = map(int, input().split())
k = [ list(map(int, input().split())) for _ in range(n)]
ans = [ (i,j) for i in range(n) for j in range(m) if check(k[i][j], i, j)]
print(len(ans))
for i in ans:
print(*i)