P14271 ABC428F 加强版

题目描述

给出 $n$ 个区间,一开始第 $i$ 个区间位于 $[L_i,R_i]$。 $m$ 次操作: - `1 l r k`:对于 $i\in[l,r]$,记修改前的第 $k$ 个区间为 $[L'_k,R'_k]$,执行 $[L_i,R_i]\leftarrow [L'_k,L'_k+R_i-L_i]$。 - `2 l r k`:对于 $i\in[l,r]$,记修改前的第 $k$ 个区间为 $[L'_k,R'_k]$,执行 $[L_i,R_i]\leftarrow [R'_k-R_i+L_i,R'_k]$。 - `3 l r x`:查询 $\sum\limits_{i=l}^r\left[x+\dfrac{1}{2}\in [L_i,R_i]\right]$。

输入格式

第一行两个正整数 $n, m$。 接下来 $n$ 行每行两个非负整数 $L_i,R_i$。 接下来 $m$ 行每行四个非负整数,表示一个操作。

输出格式

若干行,每行一个非负整数,表示答案。

说明/提示

对于 $100\%$ 的数据,保证 $1\le n,m\le 2\times 10^5$,$0\le L_i\le R_i\le 10^9$,$1\le l\le r\le n$,$0\le x\le 10^9$,$1\le k\le n$。