logo AlgoBeat OnlineJudge
登录 注册

#215098. 一如陌上尘

内存限制:512 MiB 时间限制:1000 ms 标准输入输出
题目类型:VJudge(洛谷) 评测方式:VJudge
上传者: 匿名

题目描述

或真亦或伪?飘如陌上尘。


对于长度为 的序列 ,有以下三种操作:

  • 选定两个数 ,使得 减一,消耗一点代价。
  • 选定一个数 ,使得 减一,不消耗代价。
  • 选定一个数 ,使得 减一,不消耗代价。

需要通过若干次操作将 的每个元素变为同一个非负整数 ,设消耗的总代价为 。记 为所有可行方案中 的最小值。

有一个长为 的序列 ,有 次操作,每次为其中之一:

  1. 修改操作。给出三个数 ,将 修改为
  2. 询问操作。给出两个数 ,询问所有长度为 ,满足 的序列 ,其 的和。

输入格式

第一行输入两个数

第二行输入 个数,第 个数表示

接下来 行,第一个数为 表示操作类型,若 ,接下来输入三个数 ,表示一次修改;否则输入两个数 ,表示一次询问。

输出格式

输出若干行,对应每次询问的答案,对 取模。

样例

样例输入 1

3 6
1 2 3
2 1 2
1 3 3 2
2 2 3
2 1 3
1 1 2 4
2 1 3

样例输出 1

1000000005
1000000002
2
5

数据范围与提示

本题 I/O 量较大,请使用较快的 I/O 方式。

样例解释:

对于第一个询问,序列 可以为 分别为 ,和为 ,在模 意义下为

数据范围:

Subtask 分值 特殊性质
< <
^
A
^ ^
< B
^
^

对于 的数据,保证:

特殊性质 A:数据中任意时刻 单调不降。

特殊性质 B:数据中不包含修改操作。