本題敘述:
有一個 H x W 的電子畫布,一開始數值都是 0 代表未填色,接下來請模擬 N 次畫筆操作。
每次畫筆操作為選一個座標 (r,c) 停留 t 秒,他會將曼哈頓距離 <= t 區塊染上 x 顏色。若有多個顏色重複填到相同區塊,顏色的數值會加起來。
請輸出 N 次操作後的畫布狀態。
H,W,N = map(int,input().split())
a = [[0 for _ in range(W)] for _ in range(H)]
for _ in range(N):
r,c,time,num = map(int,input().split())
for rr in range(r - time,r + time + 1):
for cc in range(c - time , c + time +1):
if 0 <= rr < H and 0 <= cc < W and abs(rr - r)+ abs(cc-c) <= time: # 曼哈頓距離公式
a[rr][cc] += num
for i in a:
for j in i:
print(j,end=' ')
print('\n', end='')
(r, c)
和 (rr, cc)
之間的曼哈頓距離計算公式為:
D = |rr - r| + |cc - c|
本題知識: