https://zerojudge.tw/ShowProblem?problemid=k732
解題思路:
- 找出二維座標上的每個點曼哈頓距離 是x的點
- 如果曼哈頓距離是md, 座標點(i, j) 上下左右差距md的點只要滿足曼哈頓距離小於md的點都要加總
Python解:
all_inputs = []
nm = input().split()
n = int(nm[0])
m = int(nm[1])
all_inputs.append(nm)
for i in range(n):
tt = input()
all_inputs.append(tt)
a = []
for k in range(1, n+1):
ai = all_inputs[k].split()
ai = [int(ai[j]) for j in range(m)]
a.append(ai)
ans = []
for i in range(n):
for j in range(m):
md = a[i][j]
if md <0:
continue
# region of md
s = 0
i0 = max(0, i-md)
i1 = min(n, i+md+1)
for ii in range(i0, i1):
j0 = max(0, j-md)
j1 = min(m, j+md+1)
for jj in range(j0, j1):
if abs(ii-i) + abs(jj-j) <= md:
s += a[ii][jj]
if s %10 == md:
ans.append((i, j))
print(len(ans))
for a in ans:
print(str(a[0]) + ' ' + str(a[1]))