题目描述
有 n 个变量 x[1∼n],初始值都为 0。
依次给出 m 个操作的信息,操作分为 2 种:
- (1,id,v): 代表将 x[id] 的值加上 v;
- 2: 代表将所有变量的值乘 2;
所有运算在 (mod 104) 下执行,提示:模意义下的加减乘运算
- 加:
c = (a + b) % mod
;
- 减:
c = (a - b + mod) % mod
;
- 乘:
c = a * b % mod
;
现在给出一个操作序列,请问依次执行序列中的所有操作之后,每个变量的值是多少。
具体的,操作序列以 q 个区间 [l[i],r[i]] 的形式给出,依次执行每个区间、每个区间按编号从小->大执行区间内的操作,即完整的操作序列为:
- l[1]∼r[1],l[2]∼r[2],l[3]∼r[3],…,l[q]∼r[q]
输入格式
第一行 3 个整数 n,m,q,代表变量数量,操作数量,操作序列中区间数量。
接下来 m 行,每行 3 个整数 op,id,v 或者 1 个整数 op,给出所有操作的信息。
接下来 q 行,每行 2 个整数 l[i],r[i] 代表一个操作区间。
输出格式
输出一行 n 个整数,代表所有操作执行完之后每个变量的值。
提示
样例 3-8
见附件。
数据范围
对于所有数据,1≤n,m,q≤2×105,op={1,2},1≤id≤n,1≤v≤109,假设 m 种操作中第 1、2 种操作的总数为 m1,m2,满足 m1+m2=m。
本题采用捆绑测试,你必须通过子任务中的所有数据点以及其依赖的子任务,才能获得子任务对应的分数。
子任务编号 |
分值 |
数据范围 |
特殊性质 |
子任务依赖 |
1 |
15 |
n,m,q≤500 |
|
|
2 |
19 |
n,m,q≤5000 |
1 |
3 |
11 |
n,m,q≤2×105 |
m2=0 |
|
4 |
17 |
m1=1,m2=m−1 |
5 |
m1=m−1,m2=1 |
6 |
21 |
|
1,2,3,4,5 |