33OJ
登录 注册

#ABC480D. 前缀拼接

前缀拼接

前缀拼接

题目描述

给定一个长度为 NN 的整数序列 (A1,A2,…,AN)(A_1, A_2, \dots, A_N)。

按下面的步骤构造一个长度为 N(N+1)2\frac{N(N+1)}{2} 的序列 BB:

  • 初始时 BB 是空序列;
  • 依次对 i=1,2,…,Ni = 1, 2, \dots, N,把 (A1,A2,…,Ai)(A_1, A_2, \dots, A_i) 接在 BB 的末尾。

例如 A=(1,10,100,1000)A = (1, 10, 100, 1000) 时,B=(1,1,10,1,10,100,1,10,100,1000)B = (1, 1, 10, 1, 10, 100, 1, 10, 100, 1000)。

给定 QQ 个询问,请逐个回答。

询问:给定 LL 和 RR,求 BL+BL+1+⋯+BRB_L + B_{L+1} + \dots + B_R。

输入格式

第一行两个整数 N,QN, Q,用一个空格隔开。

第二行 NN 个整数 A1,A2,…,ANA_1, A_2, \dots, A_N,相邻两个整数之间用一个空格隔开。

接下来 QQ 行,第 ii 行为两个整数 Li,RiL_i, R_i,表示第 ii 个询问,含义如上。相邻两个整数之间用一个空格隔开。

输出格式

输出 QQ 行。第 ii 行一个整数,表示第 ii 个询问的答案。

4 3
1 10 100 1000
3 6
1 10
8 8
121
1234
10

样例 1 解释

此时 B=(1,1,10,1,10,100,1,10,100,1000)B = (1, 1, 10, 1, 10, 100, 1, 10, 100, 1000)。

  • 第 11 个询问:B3+B4+B5+B6=10+1+10+100=121B_3 + B_4 + B_5 + B_6 = 10 + 1 + 10 + 100 = 121;
  • 第 22 个询问:$B_1 + B_2 + \dots + B_{10} = 1 + 1 + 10 + 1 + 10 + 100 + 1 + 10 + 100 + 1000 = 1234$;
  • 第 33 个询问:B8=10B_8 = 10。
7 1
100000000 100000000 100000000 100000000 100000000 100000000 100000000
1 28
2800000000

数据范围

对于所有测试数据,保证:

  • 1≤N≤1051 \le N \le 10^5;
  • 1≤Q≤1051 \le Q \le 10^5;
  • −108≤Ai≤108-10^8 \le A_i \le 10^8;
  • 对每个询问,1≤Li≤Ri≤N(N+1)21 \le L_i \le R_i \le \frac{N(N+1)}{2};
  • 所有输入值都是整数。

子任务

本题共 20 个测试点,按测试点计分:

测试点 分值 每个测试点 特殊限制
1∼61 \sim 6 3030 55 N,Q≤2000N, Q \le 2000
7∼207 \sim 20 7070 无特殊限制

每个测试点单独评分,全部测试点的得分之和即为本题得分。