CF2026D.Sums of Segments

普及+/提高

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

给定一个整数序列 [a1,a2,…,an][a_1, a_2, \dots, a_n]。定义 s(l,r)s(l, r) 表示从 ala_l 到 ara_r 的元素之和(即 s(l,r)=∑i=lrais(l, r) = \sum\limits_{i=l}^{r} a_i)。

现在构造另一个长度为 n(n+1)2\frac{n(n+1)}{2} 的序列 bb,其定义如下:b=[s(1,1),s(1,2),…,s(1,n),s(2,2),s(2,3),…,s(2,n),s(3,3),…,s(n,n)]b = [s(1,1), s(1,2), \dots, s(1,n), s(2,2), s(2,3), \dots, s(2,n), s(3,3), \dots, s(n,n)]。

例如,如果 a=[1,2,5,10]a = [1, 2, 5, 10],则 b=[1,3,8,18,2,7,17,5,15,10]b = [1, 3, 8, 18, 2, 7, 17, 5, 15, 10]。

现在有 qq 个询问。对于第 ii 个询问,给定两个整数 lil_i 和 rir_i,你需要计算 ∑j=liribj\sum\limits_{j=l_i}^{r_i} b_j。

输入格式

第一行包含一个整数 nn(1≤n≤3⋅1051 \le n \le 3 \cdot 10^5)。

第二行包含 nn 个整数 a1,a2,…,ana_1, a_2, \dots, a_n(−10≤ai≤10-10 \le a_i \le 10)。

第三行包含一个整数 qq(1≤q≤3⋅1051 \le q \le 3 \cdot 10^5)。

接下来 qq 行,每行包含两个整数 lil_i 和 rir_i(1≤li≤ri≤n(n+1)21 \le l_i \le r_i \le \frac{n(n+1)}{2})。

输出格式

输出 qq 个整数,第 ii 个整数表示 ∑j=liribj\sum\limits_{j=l_i}^{r_i} b_j 的值。

输入输出样例

  • 输入#1

    4
    1 2 5 10
    15
    1 1
    1 2
    1 3
    1 4
    1 5
    1 10
    5 10
    6 10
    2 8
    3 4
    3 10
    3 8
    5 6
    5 5
    1 8

    输出#1

    1
    4
    12
    30
    32
    86
    56
    54
    60
    26
    82
    57
    9
    2
    61

说明/提示

由 ChatGPT 4.1 翻译

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

首页