[Python] ABC017 C 101点 いもす法

問題 C – ハイスコア 回答 100点回答を考えます。 30点回答をスライドに従い、「覆われていない区間」のみを考えるように、少しコードを変更します。 AtCoder Beginner Contest 017 解説 fro...

問題

C – ハイスコア

回答

スライドに従っていもす法を使います。

AtCoder Beginner Contest 017 解説 from AtCoder Inc.

N, M = map(int, input().split())
lrs = [list(map(int, input().split())) for _ in range(N)]

imos = [0] * (M+1)
total = 0

for left, right, score in lrs:
    left -= 1
    right -= 1
    imos[left] += score
    imos[right+1] -= score
    total += score 

for i in range(M):
    imos[i+1] = imos[i] + imos[i+1]

ans = total - min(imos[:M])
print(ans)