公式

C - Sum of Min Query 解説 by sounansya


\(N\) 個の和のうち各クエリで変わる要素は \(1\) つのみです。したがって、その部分の差分を計算し、順番に値を計算していけば良いです。

実装例(Python3)

import sys

input = sys.stdin.readline
n, q = map(int, input().split())
a = list(map(int, input().split()))
b = list(map(int, input().split()))
ans = 0
for i in range(n):
    ans += min(a[i], b[i])
for _ in range(q):
    cc, xx, vv = map(str, input().split())
    c, x, v = cc == "A", int(xx), int(vv)
    x -= 1
    ans -= min(a[x], b[x])
    if c:
        a[x] = v
    else:
        b[x] = v
    ans += min(a[x], b[x])
    print(ans)

投稿日時:
最終更新: