题目描述
小可可有一个数组 {an}(初始值为 {an}={0,0,…,0})和从左到右的 m 个机器,其中第 i 个机器有类别 oi∈{1,2} 和参数 xi,yi。第 i 个机器执行的操作如下:
- 若 oi=1,则将 a(xi) 加上 yi,此时保证 1≤xi≤n,1≤yi≤104。
- 若 oi=2,则执行第 xi∼yi 个机器的操作各一次,此时保证 1≤xi≤yi≤i−1。
- 特别地,保证 o1=1。
现在,小可可依次执行了第 c1,c2,…,ck 个机器的操作各一次,她想知道最后得到的数组 {an} 是什么。
由于数组中元素的值可能很大,你只需要帮她求出每个元素除以 10007 的余数即可。
输入格式
第一行三个正整数 n,m,k。
接下来一行 k 个正整数 {ck}。
接下来 m 行,第 i 行三个正整数 oi,xi,yi。
输出格式
一行 n 个非负整数,表示数组 {an} 中每个元素的值除以 10007 的余数。
2 3 3
1 2 3
1 1 2
2 1 1
2 1 2
8 0
提示
样例 1 解释
先执行第 1 个机器的操作,给 a1 加上了 2。
然后执行第 2 个机器的操作,它操作了第 1 个机器,给 a1 加上了 2。
然后执行第 3 个机器的操作。它先操作了第 1 个机器,给 a1 加上了 2;然后操作了第 2 个机器,第 2 个机器又操作了第 1 个机器,给 a1 加上了 2。
综上所述,最后得到的数组为 {8,0}。
数据范围
对于 10% 的数据,n,m,k≤10。
对于 30% 的数据,n,m,k≤1000。
对于另外 20% 的数据,n=1。
对于另外 20% 的数据,k=1。
对于 100% 的数据,1≤n,m,k≤2×105,1≤ci≤n,oi∈{1,2},o1=1。此外,对于第 i 个机器,保证:
- 若 oi=1,则 1≤xi≤n,1≤yi≤104。
- 若 oi=2,则 1≤xi≤yi≤i−1。