NAPC 2025 OPEN 2026/03/27 09:00 ~ 2026/03/27 14:15 5:15:00.000

Q Non-Adjacent Subsequence

問題
制限時間: 2 sec メモリ制限: 2048 MB
problem

この問題は Python の想定解がTLEすることを確認しています。高速な言語へ変換することをお勧めします。

ストーリー

shogo314君はアルバイトの計画を立てており、給料の合計を最大化しようと考えています。 しかしながら、アルバイトの雇い主は大変気まぐれなので、給料を何度も変更してきます。 変更の度に再計算するのは大変なので代わりに計算してあげてください。

問題文

$N$ 日間のアルバイトの募集があります。 出勤する日は、$2$ 日以上連続にならないように自由に選ぶことができます。

現在、$i$ 日目に出勤すると給料が $A_i$ 円得られる予定です。

以下の $Q$ 個のクエリを順番に処理してください。

  • $i$ 個目のクエリでは、整数 $k_i$, $x_i$ が与えられる。$k_i$ 日目の給料を $x_i$ 円に変更する。このとき、$N$ 日間で得られる給料の合計の最大値を求める。

ただし、クエリによる変更はそれ以降のクエリにも引き継がれます。

制約
  • 入力は全て整数
  • $1 \leq N, Q \leq 2 \times 10^5$
  • $1 \leq A_i \leq 10^9$
  • $1 \leq k_i \leq N$
  • $1 \leq x_i \leq 10^9$
入力

入力は以下の形式で標準入力から与えられます。

$N$ $Q$
$A_1$ $A_2$ $\dots$ $A_N$
$k_1$ $x_1$
$k_2$ $x_2$
$\vdots$
$k_Q$ $x_Q$
出力

$Q$ 行出力してください。$i$ 行目には $i$ 個目のクエリの答えを出力してください。

入力例 1
3 2
8000 2000 3000
1 2000
2 10000
出力例 1
5000
10000

$1$ 個目のクエリの変更により、$1,2,3$ 日目に得られる予定の給料はそれぞれ $2000, 2000, 3000$ 円になります。 $1$ 日目と $3$ 日目に出勤すると $5000$ 円得られます。

$2$ 個目のクエリの変更により、$1,2,3$ 日目に得られる予定の給料はそれぞれ $2000, 10000, 3000$ 円になります。 $2$ 日目に出勤すると $10000$ 円得られます。