👋
緑コーダーの参加記録: ABC186 B - Blocks on Grid
問題
解法
開く
すべてのマスの値の合計
解説
どのマスにも同じ個数のブロックがあるようにするには、適切な個数のブロックを取り除く必要があります。
少なくとも1つは最もブロックが少ないマスがあり、そのようなマスからはブロックを取り除いても無駄になります。
そこで、最小でないマスから、最小になるようにブロックを取り除くことを考えます。
最小を
この総和を取ると
ポイント
- 最小値に揃えるには、最小値との差
コード
abc186_b.rb
H, W = gets.split.map(&:to_i)
A = Array.new(H) { gets.split.map(&:to_i) }
S = A.sum(&:sum)
M = A.map(&:min).min
puts S - H * W * M
Discussion