题目背景
定义一个长度为 n 的序列 a 的方差为:
s2=n1i=1∑n(ai−a)2
其中:∑ 为累加求和符号,例如 ∑i=15ai=a1+a2+a3+a4+a5。a 为序列 a 的平均数。
例如对于序列 {3,5,1,4,2},a=3,此时 $s^2=\frac{1}{n} \sum_{i=1}^n (a_i-\overline{a})^2=\frac{1}{5}[(3-3)^2+(5-3)^2+(1-3)^2+(4-3)^2+(2-3)^2]=2$。
题目描述
小 S 认为数学很简单,于是小 R 想要考考她。
小 R 给了小 S 一个序列 a,这个序列由 m 段构成,第 i 段被表示为 l r b
,表示 al,al+1,…,ar 为 b,保证给出的任意两个区间不相交。
现在,小 R 有 q 个问题。形如 l r
,想让你查询区间 [l,r] 的方差 s2(需要注意:l 可能等于 r,此时该段方差为 0)。
由于这个数字可能是个小数,小 R 不方便对答案,所以他想要小 S 求出 (r−l+1)2⋅s2mod998244353。可以证明 (r−l+1)2⋅s2 一定是整数。
作为小 S 的好朋友,你能帮帮她吗?
输入格式
第一行三个正整数 n,m,q,表示序列的长度,序列的段数和问题的个数。
接下来 m 行,每行三个正整数,分别表示 li,ri,bi。
接下来 q 行,每行两个正整数 x,y。你需要回答 [x,y] 的方差。
输出格式
对于每个询问,输出一行一个整数,表示你的答案。
5 3 15
1 1 5
2 2 7
3 5 8
1 1
1 2
1 3
1 4
1 5
2 2
2 3
2 4
2 5
3 3
3 4
3 5
4 4
4 5
5 5
0
4
14
24
34
0
1
2
3
0
0
0
0
0
0
提示
【样例解释】
序列 a 为 {5,7,8,8,8}。对于第 12 组询问,区间 [3,5] 的平均数 a=8,方差 $s^2 = \frac{1}{3} [(8 - 8)^2 + (8 - 8)^2 + (8 - 8)^2] = 0$。
【数据范围】
- 对于 20% 的数据,保证 n,q≤100。
- 对于 50% 的数据,保证 n≤106,m≤103。
- 对于另外 10% 的数据,保证 ri−li≤1000,q≤104。
- 对于另外 10% 的数据,保证 m≤103。
对于所有数据,保证:
- 1≤li≤ri≤n≤1018,1≤m≤min(n,2×105),1≤q≤2×105,1≤x≤y≤n,1≤bi≤1018。
- 数据保证对于任意 i<j,li<lj,且 [li,ri] 与 [lj,rj] 不存在交集,即 [li,ri]∩[lj,rj]=∅。
- 数据保证,若将所有的 [li,ri] 取并集,则其覆盖了 [1,n] 上所有的正整数。即:⋃i=1n[li,ri]∩Z=[1,n]∩Z。