Type: Default File IO: segt 3000ms 512MiB

线段树

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

线段树(segt\texttt{segt}

【题目描述】

露娜喜欢线段树。

露娜正在做线段树模板题,题目给定了 nn 个整数 a1,a2,,ana_1,a_2,\dots,a_n,并顺序给出 mm 个操作 P1,P2,,PmP_1,P_2,\dots,P_m,形如:

  • 修改操作:形如 1 l r x 表示把 alara_l\sim a_r 加上 xx
  • 查询操作:形如 2 l r:表示求 alara_l\sim a_r 的区间和。

露娜觉得这太简单了,于是她想到了这样一个问题:假如我依次执行 Px,Px+1,,PyP_x,P_{x+1},\dots,P_y 这些操作,那么这些操作中所有查询操作的得到答案的总和是多少?

但露娜觉得这依然太简单了,所以她一口气想出了 qq 组这样的 x,yx,y,她想对每组这样的 x,yx,y 求出答案。

注意:所有的操作都是在露娜的脑海里进行的,并不会对后面的询问产生影响(即询问之间互相独立)。

露娜并不会做这题,你可以帮她做出这道题吗?

【输入格式】

segt.in\texttt{segt.in} 中读入数据。

一行三个正整数 n,m,qn,m,q,含义如题。

第二行 nn 个正整数,第 ii 个表示 aia_i,含义如题。

接下来 mm 行,每行形如 1 l r x2 l r,第 ii 行表示第 ii 个操作。

接下来 qq 行,每行两个整数 x,yx,y,表示一次询问。

【输出格式】

输出到 segt.out\texttt{segt.out} 中。

输出 qq 行,每行一个整数表示答案。

【样例 1 输入】

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

【样例 1 输出】

6
29
0
20
72

【数据范围】

所有测试数据满足:n,m,q2×105,103ai,x103n,m,q\le 2\times 10^5,-10^3\le a_i,x\le 10^3

NOIP 题目选讲

Not Attended
Status
Done
Rule
IOI
Problem
7
Start at
2023-11-4 12:00
End at
2023-11-9 12:00
Duration
120 hour(s)
Host
Partic.
29