atcoder#ARC126E. [ARC126E] Infinite Operations

[ARC126E] Infinite Operations

配点 : 800800

問題文

NN 項からなる正整数列 A=(A1,A2,,AN)A = (A_1, A_2, \ldots, A_N)QQ 個のクエリが与えられます。ii 番目のクエリは、以下のようなものです:

  • 整数 xi,yix_i, y_i (ただし 1xiN1\leq x_i\leq N)が与えられる。AxiA_{x_i}yiy_i に変更する。

クエリで数列が変更されるたびに、以下の問題の答えを mod998244353\mod 998244353 で求めてください(注記参照)。

数列 AA に対して以下の操作を nn 回行うとき、獲得できる総得点の最大値を f(n)f(n) とする。

  • AiAjA_i\leq A_j となる i,ji, j および Ai+2xAjA_i + 2x \leq A_j となる非負実数 xx を選ぶ。
  • AiA_ixx を加え、AjA_j から xx を引く。
  • xx 点を獲得する。

極限 limnf(n)\displaystyle \lim_{n\to\infty} f(n) が存在することが証明できる。この値を求めよ。

注記

求める極限は必ず有理数となることが証明できます。またこの問題の制約下では、その値を互いに素な 22 つの整数 P,QP, Q を用いて PQ\frac{P}{Q} と表したとき、R×QP(mod998244353)R\times Q\equiv P\pmod{998244353} かつ 0R<9982443530\leq R < 998244353 を満たす整数 RR がただ一つ存在することが証明できます。この RR を求めてください。

制約

  • 2N3×1052\leq N\leq 3\times 10^5
  • 1Q3×1051\leq Q\leq 3\times 10^5
  • 1Ai1091\leq A_i \leq 10^9
  • 1xiN1\leq x_i\leq N
  • 1yi1091\leq y_i\leq 10^9

入力

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

NN QQ

A1A_1 A2A_2 \ldots ANA_N

x1x_1 y1y_1

\vdots

xQx_Q yQy_Q

出力

QQ 行出力してください。ii 行目には、ii 番目のクエリで数列を変更した時点での、問題の答えを出力してください。

3 4
7 5 5
1 5
2 6
1 7
3 5
0
1
2
2

11 つめのクエリにより、数列は (5,5,5)(5, 5, 5) へと変更されます。この場合任意の nn に対して f(n)=0f(n) = 0 となり、答えは 00 となります。

22 つめのクエリにより、数列は (5,6,5)(5,6,5) へと変更されます。操作は例えば以下のように進行します。

  • (i,j,x)=(3,2,0.4)(i,j,x) = (3,2,0.4) と選ぶ。数列を (5,5.6,5.4)(5, 5.6, 5.4) へ変更し、0.40.4 点を獲得する。
  • (i,j,x)=(1,2,0.3)(i,j,x) = (1,2,0.3) と選ぶ。数列を (5.3,5.3,5.4)(5.3, 5.3, 5.4) へ変更し、0.30.3 点を獲得する。

上の方法では 22 回の操作により 0.70.7 点を獲得しており、f(2)0.7f(2) \geq 0.7 であることがわかります。

この場合、獲得できる総得点は 11 を超えることはなく、操作回数を増やしていき最適な方法で操作を行うことで、獲得できる総得点を限りなく 11 に近づけることが可能であることが証明できます。したがって limnf(n)=1\displaystyle \lim_{n\to\infty} f(n) = 1 となります。

2 4
1 2
2 5
1 3
1 2
2 3
2
1
499122178
499122177