『MdOI R3』Yoshino
题目背景
『变成了精灵确实是遭遇了许多难过的事情,也遭遇了许多悲伤的事情。但是——我也得到了比这些难过和悲伤多得多的快乐与开心。』
『——我觉得,虽然澪小姐想要使用我的生命,但是作为交换,她不是也让我活了更长的时间了吗?』
『对了——差点忘了。四糸奈,……稍微一会儿,可以吗。』
『那么,正式介绍一下呢,——妈妈。』
『这位是七罪小姐,我——最重要的朋友。』
『这位是士道先生,是我——最喜欢的人。』
![](https://cdn.luogu.com.cn/upload/image_hosting/v7zfroxm.png)
题目描述
Yoshino 给了你一个长度为 $n$ 的序列,第 $i$ 项为 $a_i$。
现在 Yoshino 会对数列进行 $m$ 次操作。
操作分成两种:
- $1\ l\ r\ x$ Yoshino 把数列下标在 $[l,r]$ 区间内的数修改为了一个从 $x$ 开始公差为 $1$ 的等差数列。
- $2$ Yoshino 需要查询整个数列中的逆序对个数。逆序对的定义为数对 $(i,j)$ 满足 $i<j$ 且 $a_i>a_j$。
输入输出格式
输入格式
第一行两个整数 $n,m$。
第二行 $n$ 个整数,第 $i$ 个为 $a_i$。
接下来 $m$ 行,每行代表一个操作,含义见上。
输出格式
对于每次询问,一行一个整数输出答案。
输入输出样例
输入样例 #1
3 3
3 2 1
2
1 1 3 1
2
输出样例 #1
3
0
说明
【样例解释】
第一次操作为询问操作,此时有 $(1,3),(2,3),(1,2)$ 三组逆序对,答案为 $3$。
第二次操作修改完成后,数列变为 $1\ 2\ 3$。
第三次操作为询问操作,此时数列中没有逆序对,故答案为 $0$。
更多样例请[到这里](https://www.luogu.com.cn/paste/j4nq14ov)领取。
---
【数据范围】
**本题采用捆绑测试**
| 子任务编号 | $n,m\le$ | 特殊条件 | 分值 | 时限 |
| ---------- | -------------- | -------------------------------------- | ----- | ----- |
| $1$ | $500$ | 无 | $10 $ | $1s$ |
| $2$ | $3\times 10^3$ | 无 | $10$ | $1s $ |
| $3$ | $3\times 10^4$ | 修改长度为 $1$ | $15$ | $2s $ |
| $4$ | $3\times 10^4$ | 保证任何时刻序列中的最大值不超过 $15$ | $20 $ | $2s $ |
| $5$ | $3\times 10^4$ | 保证第奇数次操作 $1$ 为 $1\ 1\ n\ 1$ | $20$ | $ 2s$ |
| $6$ | $3\times 10^4$ | 无特殊限制 | $25 $ | $2s$ |
对于所有的数据,$1\le n,m,a_i\le 3\times 10^4$,$1\le l\le r\le n$,$1\le x\le 3\times 10^4-r+l$。