# 贸易 - 参考时间限制:**2.0 秒**([评测环境与性能](../../../docs/评测环境与性能.md))。 - 实际时间限制:标准程序在目标评测环境中处理最慢正式测试文件的基准时间的 2 倍,按 0.5 秒的倍数向上取整;若平台仅支持更粗的粒度,再向上取整到平台可设置值。 - 内存限制:256 MB ## 背景故事 火星殖民地终于度过了物资紧缺的阶段,开始定期生产和出售货物。仓库按当前售价优先出售最贵的物品,生产能力和售价也会调整。请根据操作记录,计算每次出售得到的收入。 ## 形式化问题描述 有 $n$ 种货物,编号为 $1$ 到 $n$ .第 $i$ 种货物的初始单价为 $c_i$ ,初始产量参数为 $p_i$ ,初始库存均为零。按顺序处理以下操作: - `1 t` :生产。每种货物 $i$ 的库存增加 $p_it$ . - `2 k` :出售。按单价从高到低出售至多 $k$ 件物品;单价相同时,优先出售种类编号较大的物品。库存不足时卖出全部库存。输出这次收入对 $10^9+7$ 取模的结果。 - `3 i p` :将种类 $i$ 的产量参数改为 $p$ ,不改变已有库存。 - `4 i c` :将种类 $i$ 的单价改为 $c$ ,已有库存也立即使用新价格。 未售出的物品一直保留。一次出售可以卖出同一种货物的任意件数;$k$ 表示物品件数。 ## 输入格式 第一行两个整数 $n,m$ .第二行依次给出 $n$ 对整数 $c_i,p_i$ .接下来 $m$ 行,每行按上述格式给出一个操作。 ## 输出格式 对每个出售操作输出一行一个整数,表示本次收入对 $10^9+7$ 取模的结果。没有出售操作时不输出任何整数。 ## 样例 1 ### 输入 ```text 2 8 1 5 3 1 1 1 2 3 4 1 5 1 1 2 1 3 2 2 1 1 2 13 ``` ### 输出 ```text 5 5 63 ``` ## 样例 2 ### 输入 ```text 2 5 5 1 5 1 1 1 2 1 4 2 9 2 1 2 1 ``` ### 输出 ```text 5 5 0 ``` ## 样例 3 ### 输入 ```text 1 5 0 0 1 1000 2 0 3 1 100000 1 1000 2 1000000000000000000 ``` ### 输出 ```text 0 0 ``` ## 样例解释 样例 1 第一次出售一件单价 $3$ 的物品和两件单价 $1$ 的物品,收入为 $5$ .随后两次收入分别为 $5$ 和 $63$ .样例 2 首次同价出售优先消耗种类 $2$ ,所以随后把种类 $2$ 涨价不会改变剩余那件物品的售价。样例 3 中所有被出售物品的价格都是零。 ## 数据范围与保证 所有数据满足 $1\le n,m\le300000$ .所有初始及修改后的单价满足 $0\le c_i,c\le10^9$ ,产量参数满足 $0\le p_i,p\le100000$ .操作中 $0\le t\le1000$ ,$0\le k\le10^{18}$ ,$1\le i\le n$ . | 分值比例 | 额外条件 | | --- | --- | | 100% | 无额外条件 |