#ABC255H. [ABC255Ex] Range Harvest Query

[ABC255Ex] Range Harvest Query

题目描述

N N 本の木があります。0 0 日目にはどの木にも実は一つもなっていません。
1 1 日目以降の毎朝、それぞれの i = 1, 2, , N i\ =\ 1,\ 2,\ \ldots,\ N について、i i 番目の木に i i 個の実が増えます。

高橋君は Q Q 回の収穫作業をします。 i = 1, 2, , Q i\ =\ 1,\ 2,\ \ldots,\ Q について、i i 回目の収穫作業は Di D_i 日目の夜に行われ、その時点で Li L_i 番目から Ri R_i 番目の木になっているすべての実を収穫します。

Q Q 回の収穫作業のそれぞれについて、高橋君が収穫する実の個数を 998244353 998244353 で割ったあまりを出力してください。

输入格式

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

N N Q Q D1 D_1 L1 L_1 R1 R_1 D2 D_2 L2 L_2 R2 R_2 \vdots DQ D_Q LQ L_Q RQ R_Q

输出格式

Q Q 行出力せよ。 i = 1, 2, , Q i\ =\ 1,\ 2,\ \ldots,\ Q について、i i 行目には高橋君が i i 回目の収穫作業で収穫する実の個数を 998244353 998244353 で割ったあまりを出力せよ。

题目大意

给定一片 NN 格的农田,从第 00 天开始,第 ii 格农田每天会长出 ii 的作物。

给出 QQ 个询问,每次询问以 D,L,RD,L,R 的格式给出,表示询问在第 DD 天,收割 [L,R][L,R] 的农田,会获得多少作物?答案对 998244353998244353 取模。注意询问相互依赖,即在每一次收割后,[L,R][L,R] 的作物应当清零。

5 3
2 2 3
3 3 4
5 1 5
10
15
50
711741968710511029 1
82803157126515475 516874290286751784 588060532191410838
603657470

提示

制約

  • 1  N  1018 1\ \leq\ N\ \leq\ 10^{18}
  • 1  Q  2 × 105 1\ \leq\ Q\ \leq\ 2\ \times\ 10^5
  • $ 1\ \leq\ D_1\ \lt\ D_2\ \lt\ \cdots\ \lt\ D_Q\ \leq\ 10^{18} $
  • 1  Li  Ri  N 1\ \leq\ L_i\ \leq\ R_i\ \leq\ N
  • 入力はすべて整数

Sample Explanation 1

i = 1, 2, 3, 4, 5 i\ =\ 1,\ 2,\ 3,\ 4,\ 5 について、i i 番目の木になっている実の個数を Ai A_i とし、 それぞれの木になっている実の個数を数列 A = (A1, A2, A3, A4, A5) A\ =\ (A_1,\ A_2,\ A_3,\ A_4,\ A_5) を用いて表すことにします。 - 0 0 日目、A = (0, 0, 0, 0, 0) A\ =\ (0,\ 0,\ 0,\ 0,\ 0) です。 - 1 1 日目の朝、それぞれの木に新たに実がなり、A = (1, 2, 3, 4, 5) A\ =\ (1,\ 2,\ 3,\ 4,\ 5) となります。 - 2 2 日目の朝、それぞれの木に新たに実がなり、A = (2, 4, 6, 8, 10) A\ =\ (2,\ 4,\ 6,\ 8,\ 10) となります。 - 2 2 日目の夜、高橋君は 1 1 回目の収穫を行います。4 + 6 = 10 4\ +\ 6\ =\ 10 個の木の実を収穫し、A = (2, 0, 0, 8, 10) A\ =\ (2,\ 0,\ 0,\ 8,\ 10) となります。 - 3 3 日目の朝、それぞれの木に新たに実がなり、A = (3, 2, 3, 12, 15) A\ =\ (3,\ 2,\ 3,\ 12,\ 15) となります。 - 3 3 日目の夜、高橋君は 2 2 回目の収穫を行います。3 + 12 = 15 3\ +\ 12\ =\ 15 個の木の実を収穫し、A = (3, 2, 0, 0, 15) A\ =\ (3,\ 2,\ 0,\ 0,\ 15) となります。 - 4 4 日目の朝、それぞれの木に新たに実がなり、A = (4, 4, 3, 4, 20) A\ =\ (4,\ 4,\ 3,\ 4,\ 20) となります。 - 5 5 日目の朝、それぞれの木に新たに実がなり、A = (5, 6, 6, 8, 25) A\ =\ (5,\ 6,\ 6,\ 8,\ 25) となります。 - 5 5 日目の夜、高橋君は 3 3 回目の収穫を行います。5 + 6 + 6 + 8 + 25 = 50 5\ +\ 6\ +\ 6\ +\ 8\ +\ 25\ =\ 50 個の木の実を収穫し、A = (0, 0, 0, 0, 0) A\ =\ (0,\ 0,\ 0,\ 0,\ 0) となります。

Sample Explanation 2

998244353 998244353 で割ったあまりを出力することに注意してください。