3466: 加与乘
内存限制:128 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:43
解决:11
题目描述
有 \( n \) 个存储单元,一开始,所有单元都是 0。接下来依次进行 \( q \) 条修改操作:
- 加法修改操作以字符 `+` 开头,后接两个整数 \( p \) 与 \( d \),表示第 \( p \) 个单元将增加 \( d \)。
- 乘法修改操作以字符 `*` 开头,后接一个整数 \( m \),表示所有单元都将变成原数字的 \( m \) 倍。
请输出每个单元最后的数值。由于答案可能很大,输出这些数各自模 \( 1,000,000,007 \) 的余数。
输入
- 第一行:两个整数表示 \( n \) 与 \( q \)。
- 第二行到第 \( q+1 \) 行:第 \( i+1 \) 行首先有一个字符表示操作类型
- 若是加法修改,后接两个整数 \( p_i \) 与 \( d_i \)
- 若是乘法修改,后接一个整数 \( m_i \)
输出
单独一行:
- \( n \) 个数字,表示各单元模 \( 1,000,000,007 \) 的余数。
样例输入 复制
3 5
+ 1 3
* 10
+ 2 6
+ 3 9
* 5
样例输出 复制
150 30 45
提示
- 对于 40% 的数据,\( n, q \leq 1000 \)
- 对于 80% 的数据,\( n, q \leq 50000 \)
- 对于 100% 的数据,\( n, q \leq 200,000 \)
- \( 1 \leq d_i, m_i \leq 1,000,000 \)