💭

「AtCoder Beginner Contest 186 B - Blocks on Grid」メモ

に公開

問題

AtCoder Beginner Contest 186

https://atcoder.jp/contests/abc186/tasks/abc186_b

考察

二次元配列を次のコードで入力から受け取る

a = [list(map(int, input().split())) for _ in range(h)]

二次元配列の最小値を求めて、それより大きい数からそれを引けばよい。

ACコード

def minimum(a, h, w):
    ans = 10**9
    for i in range(h):
        for j in range(w):
            if a[i][j] < ans:
                ans = a[i][j]
    return ans

h,w=map(int,input().split())

a = [list(map(int, input().split())) for _ in range(h)]

ans = 0
for i in range(h):
    for j in range(w):
        ans += a[i][j] - minimum(a, h, w)

print(ans)

Discussion