#643. 高速公路养护预算

高速公路养护预算

高速公路养护预算

故事背景

某省正在对一条长距离高速公路进行集中养护。整条高速可以看作由 nn 段连续路段组成,从 11nn 依次编号。起初每一段路的养护预算都是 00

养护部门先后制定了 qq 项养护计划,每一项计划都会对一段连续的路段增加同样数额的预算,例如“从第 ll 段到第 rr 段,每段增加 vv 元预算”。所有计划执行完毕之后,审计部门会根据不同的检查区间,询问若干段连续路段的总预算是多少。

请你帮助审计部门快速回答这些询问。

题目描述

一条高速公路被划分为 nn 段,从 11nn 依次编号。初始时每一段的养护预算为 00

接下来有 qq 条计划,每条计划用三个整数 l,r,vl,r,v 描述,表示对所有满足 lirl \le i \le r 的路段 ii,其预算同时增加 vvvv 可以为负数,表示预算调整减少)。

所有计划执行完毕后,会有 mm 次询问。每次询问给出一段连续区间 [L,R][L,R],需要回答这段区间内所有路段预算之和:

i=LRbi,\sum_{i=L}^R b_i,

其中 bib_i 为所有计划执行结束后,第 ii 段路的最终预算。

输入格式

  • 第一行包含三个整数 n,q,mn,q,m,分别表示路段数量、计划条数和询问次数。
  • 接下来 qq 行,每行包含三个整数 l,r,vl,r,v,表示一条养护计划。
  • 接下来 mm 行,每行包含两个整数 L,RL,R,表示一次区间询问。

保证 1lrn1 \le l \le r \le n1LRn1 \le L \le R \le n

输出格式

输出共 mm 行,每行一个整数,第 ii 行表示第 ii 次询问对应区间的总预算。

输入输出样例 #1

输入 #1

5 3 3
2 4 10
1 3 -5
3 5 2
1 5
2 3
4 5

输出 #1

21
19
24

样例解释 #1

最终每段路的预算为 b=[5,10,12,12,7]b = [5,10,12,12,7]

  • 区间 [1,5][1,5] 的总预算为 5+10+12+12+7=465+10+12+12+7=46
  • 区间 [2,3][2,3] 的总预算为 10+12=2210+12=22
  • 区间 [4,5][4,5] 的总预算为 12+7=1912+7=19

(样例仅为说明格式,具体数据与输出可能不同。)

数据范围

对所有数据,保证:

  • 1n,q,m2×1051 \le n,q,m \le 2 \times 10^5
  • 109v109-10^9 \le v \le 10^9
  • 所有区间和结果均在 6464 位有符号整数范围内。

要求程序在合理时间内完成所有计划并回答所有询问。