問題概要

問題へのリンク

整数 $N$ と長さ $N$ の整数列 $A$ が与えられる.最初スコアは $0$ である. 次の操作を,$A$ の長さが $1$ 以下になるまで繰り返す:

  • $A$の (その時点で) 隣接する2項を選び,どちらも削除する. 2項の差の絶対値がスコアに加算される.

得られるスコアの最大値を求めよ.

制約

$2 \leq N \leq 3\times 10^5$,$1 \leq A_i \leq 10^9$

公式解説へのリンク

略解.click to open

$N$ が偶数の時

大きい方の半分をプラスに,小さい方の半分をマイナスにした和がスコアの上界. この上界が達成できる.

$N$ が奇数の時

最後に残る1個を決めると,その左右それぞれで,上記偶数の時と同じ議論になる. 最後に残る1個を,左から順に全部調べる.