E - Sum of Subarrays 解説 /

実行時間制限: 2 sec / メモリ制限: 1024 MiB

配点 : 475475

問題文

長さ NN の整数列 A=(A1,A2,,AN)A = (A_1, A_2, \ldots, A_N) が与えられます。

QQ 個のクエリが与えられるので、それぞれについて答えを求めてください。

ii 番目のクエリでは、整数 Li,RiL_i, R_i が与えられるので、 l=LiRir=lRij=lrAj\displaystyle\sum_{l = L_i}^{R_i}\sum_{r = l}^{R_i}\sum_{j = l}^{r} A_j の値を答えとして求めてください。

制約

  • 1N,Q3×1051 \leq N, Q \leq 3 \times 10^5
  • 1Ai1001 \leq A_i \leq 100
  • 1LiRiN1 \leq L_i \leq R_i \leq N
  • 入力される値はすべて整数

入力

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

NN QQ
A1A_1 A2A_2 \ldots ANA_N
L1L_1 R1R_1
L2L_2 R2R_2
\vdots
LQL_Q RQR_Q

出力

QQ 行出力せよ。ii 行目には、ii 番目のクエリに対する答えを出力せよ。


入力例 1Copy

Copy
5 4
2 1 3 3 1
2 4
1 4
1 5
3 3

出力例 1Copy

Copy
24
44
74
3

11 番目のクエリについて説明します。

求めるべき値は l=24r=l4j=lrAj\displaystyle\sum_{l = 2}^{4}\sum_{r = l}^{4}\sum_{j = l}^{r} A_j です。

  • l=2,r=2l = 2, r = 2 のとき j=lrAj=1\displaystyle\sum_{j = l}^{r} A_j = 1 です。

  • l=2,r=3l = 2, r = 3 のとき j=lrAj=4\displaystyle\sum_{j = l}^{r} A_j = 4 です。

  • l=2,r=4l = 2, r = 4 のとき j=lrAj=7\displaystyle\sum_{j = l}^{r} A_j = 7 です。

  • l=3,r=3l = 3, r = 3 のとき j=lrAj=3\displaystyle\sum_{j = l}^{r} A_j = 3 です。

  • l=3,r=4l = 3, r = 4 のとき j=lrAj=6\displaystyle\sum_{j = l}^{r} A_j = 6 です。

  • l=4,r=4l = 4, r = 4 のとき j=lrAj=3\displaystyle\sum_{j = l}^{r} A_j = 3 です。

以上より、求めるべき値は (1+4+7)+(3+6)+3=24(1 + 4 + 7) + (3 + 6) + 3 = 24 です。

Score : 475475 points

Problem Statement

You are given an integer sequence A=(A1,A2,,AN)A = (A_1, A_2, \ldots, A_N) of length NN.

QQ queries are given, so find the answer for each.

In the ii-th query, integers LiL_i and RiR_i are given, so find l=LiRir=lRij=lrAj\displaystyle\sum_{l = L_i}^{R_i}\sum_{r = l}^{R_i}\sum_{j = l}^{r} A_j as the answer.

Constraints

  • 1N,Q3×1051 \leq N, Q \leq 3 \times 10^5
  • 1Ai1001 \leq A_i \leq 100
  • 1LiRiN1 \leq L_i \leq R_i \leq N
  • All input values are integers.

Input

The input is given from Standard Input in the following format:

NN QQ
A1A_1 A2A_2 \ldots ANA_N
L1L_1 R1R_1
L2L_2 R2R_2
\vdots
LQL_Q RQR_Q

Output

Output QQ lines. The ii-th line should contain the answer to the ii-th query.


Sample Input 1Copy

Copy
5 4
2 1 3 3 1
2 4
1 4
1 5
3 3

Sample Output 1Copy

Copy
24
44
74
3

We explain the first query.

The value to be calculated is l=24r=l4j=lrAj\displaystyle\sum_{l = 2}^{4}\sum_{r = l}^{4}\sum_{j = l}^{r} A_j.

  • When l=2,r=2l = 2, r = 2, j=lrAj=1\displaystyle\sum_{j = l}^{r} A_j = 1.

  • When l=2,r=3l = 2, r = 3, j=lrAj=4\displaystyle\sum_{j = l}^{r} A_j = 4.

  • When l=2,r=4l = 2, r = 4, j=lrAj=7\displaystyle\sum_{j = l}^{r} A_j = 7.

  • When l=3,r=3l = 3, r = 3, j=lrAj=3\displaystyle\sum_{j = l}^{r} A_j = 3.

  • When l=3,r=4l = 3, r = 4, j=lrAj=6\displaystyle\sum_{j = l}^{r} A_j = 6.

  • When l=4,r=4l = 4, r = 4, j=lrAj=3\displaystyle\sum_{j = l}^{r} A_j = 3.

From the above, the value to be calculated is (1+4+7)+(3+6)+3=24(1 + 4 + 7) + (3 + 6) + 3 = 24.



2026-08-01 (土)
04:32:46 +09:00