PythonでJOI難易度6を埋める #16

A - フェーン現象 (Foehn Phenomena)

各地形変動が別々の事象だと誤読.地形を保存する方法が思いつかず終了. 場合分けでバグったせいで,inf時間かかった.参考にした提出

from sys import stdin
input = stdin.readline

n, q, s, t = map(int, input().strip().split())
ele = [int(input().strip()) for _ in range(n + 1)]
query = [list(map(int, input().strip().split())) for _ in range(q)]

diff = [ele[i + 1] - ele[i] for i in range(n)]

tmp = 0
for i in range(n):
    if diff[i] > 0:
        tmp -= s * diff[i]
    else:
        tmp -= t * diff[i]

for i in range(q):
    if diff[query[i][0] - 1] > 0:
        tmp += diff[query[i][0] - 1] * s
    else:
        tmp += diff[query[i][0] - 1] * t
    diff[query[i][0] - 1] += query[i][2]
    if diff[query[i][0] - 1] > 0:
        tmp -= diff[query[i][0] - 1] * s
    else:
        tmp -= diff[query[i][0] - 1] * t
    if query[i][1] < n:
        if diff[query[i][1]] > 0:
            tmp += diff[query[i][1]] * s
        else:
            tmp += diff[query[i][1]] * t
        diff[query[i][1]] -= query[i][2]
        if diff[query[i][1]] > 0:
            tmp -= diff[query[i][1]] * s
        else:
            tmp -= diff[query[i][1]] * t
    print(tmp)

できたこと

  • 標高差に注目する