#CSP0033. 子数组的和

子数组的和

题目描述

给定一个长度为 nn 的序列 a1,a2,…,ana_1,a_2,\ldots,a_n。

有 qq 次询问,每次询问给定一个区间 [l,r][l,r]。你需要求出

$$\sum\limits_{i=l}^r \sum\limits_{j=i}^r (a_i+a_{i+1}+\ldots+a_j)$$

形式化的说:即求出子数组的所有子数组的和。

输入格式

第一行输入两个数 nn 和 qq。

接下来一行输入 nn 个正整数为 a1,a2,…,ana_1,a_2,\ldots,a_n。

接下来 qq 行,每行输入两个整数 l,rl,r。

输出格式

一行 nn 个数,为 1∼n1 \sim n。

5 4
2 1 3 3 1
2 4
1 4
1 5
3 3
24
44
74
3

数据规模与约定

对于 100%100\% 的数据,保证 1≤n,q≤3×1051\leq n,q\leq 3\times 10^5,1≤ai≤1001\leq a_i\leq 100。保证 1≤l≤r≤n1\leq l\leq r\leq n。

  • 子任务 1(30 分):保证 n,m≤300n,m\leq 300。
  • 子任务 2(30 分):保证 n,m≤3000n,m\leq 3000。
  • 子任务 3(40 分):没有特殊限制。