最初からA1≤A2≤...≤ANであると仮定してよい。この場合、大きさの最大と最小が決まっていればその範囲にある美術品はすべて展示したほうが得なので、美術品の連続部分列だけ考えればすむ。
美術品iを展示しているとき、さらにi+1を展示すると得点はBi+1−(Ai+1−Ai)だけ増えることに注目してDPする。dp[i]:=iまで展示するとした時の最大得点、として以下のように更新していけばよい:
dp[i]←max(dp[i−1]+Bi−(Ai−Ai−1),Bi)
答えはmaxi∈[N]dp[i]。
いわゆるKadane's algorithmっぽい感じなんだけど、なぜかそれをそのまま書いてしまってWAした。