A83452.双前缀求和

普及-

官方

通过率:0%

时间限制:1.00s

内存限制:128MB

题目描述

给定一个长度为 nn 的正整数数组 aa。把它升序排序后得到数组 bb(与 aa 的元素相同、只是顺序不同)。

你需要回答 mm 次区间求和询问。每次询问给出三个整数 t,ℓ,rt, \ell, r(1≤ℓ≤r≤n1\le \ell \le r \le n):

若 t=1t=1,回答原数组区间和:aℓ+aℓ+1+⋯+ara_\ell + a_{\ell+1} + \cdots + a_r;

若 t=2t=2,回答排序后数组区间和:bℓ+bℓ+1+⋯+brb_\ell + b_{\ell+1} + \cdots + b_r。

输入格式

  • 第一行:一个整数 nn。

  • 第二行:nn 个整数,表示数组 a1,a2,…,ana_1,a_2,\dots,a_n。

  • 第三行:一个整数 mm。

  • 接下来 mm 行:每行三个整数 t, ℓ, rt,\ \ell,\ r。

输出格式

输出共 mm 行。第 ii 行输出第 ii 次询问的答案。

输入输出样例

  • 输入#1

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

    输出#1

    6
    7
    13
    5
    

说明/提示

  • 1≤n≤1051 \le n \le 10^5

  • 1≤ai≤1091 \le a_i \le 10^9

  • 1≤m≤1051 \le m \le 10^5

  • 1≤ℓ≤r≤n1 \le \ell \le r \le n,t∈{1,2}t \in \{1,2\}

对于样例:

a=[5,1,2,3,2]a=[5,1,2,3,2],b=[1,2,2,3,5]b=[1,2,2,3,5]。

t=1,[2,4]t=1,[2,4]: 1+2+3=61+2+3=6

t=2,[2,4]t=2,[2,4]: 2+2+3=72+2+3=7

t=1,[1,5]t=1,[1,5]: 5+1+2+3+2=135+1+2+3+2=13

t=2,[1,3]t=2,[1,3]: 1+2+2=51+2+2=5

输入解题思路,AI测评打分。不知道怎么写?

首页