#-------- 入力例1 --------- H = 5 W = 5 N = 3 A = [1, 3, 2] B = [1, 3, 2] C = [3, 5, 4] D = [3, 5, 4] #--------------------------- # 各日について加算 X = [ [ 0 ] * (W + 2) for i inrange(H + 2) ] Z = [ [ 0 ] * (W + 2) for i inrange(H + 2) ] for t inrange(N): X[A[t]][B[t]] += 1 X[C[t] + 1][D[t] + 1] += 1 X[A[t]][D[t] + 1] -= 1 X[C[t] + 1][B[t]] -= 1
# 二次元累積和を算出 for i inrange(1, H + 1): for j inrange(1, W + 1): Z[i][j] = Z[i][j - 1] + X[i][j] for j inrange(1, W+1): for i inrange(1, H + 1): Z[i][j] = Z[i - 1][j] + Z[i][j]
# 出力 for i inrange(1, H + 1): for j inrange(1, W + 1): if j >= 2: print(' ', end='') print(Z[i][j], end='') print()