编程题
### 问题描述
在一个庞大的秘密数据仓库中,有一个从 $1$ 到 $N$ 的编号的无线电频道。每个频道都有一个信号值,初次时所有频道的信号值都为 $0$。现在你需要支持两种操作:
1. 修改某一编号范围 $[l, r]$ 内的频道的信号值(增加或减少某个值)。
2. 查询某一编号范围 $[l, r]$ 内信号值大于或等于 $x$ 的频道数量。
但这不是一个简单的任务,因为频道的数量 $N$ 非常大,可能高达 $10^9$,并且你不可能知道所有频道的信号具体情况。因此,你需要设计一个程序来帮助你完成这两种操作。
### 输入格式
第一行包含一个整数 $Q$,表示操作的数量。
接下来的 $Q$ 行,每行描述一个操作。如果是修改操作,格式为 `1 l r v`,其中 $l$ 和 $r$ 为频道编号的范围,$v$ 为需要增加或减少的信号值($v$ 可能为负)。如果是查询操作,格式为 `2 l r x`,其中 $l$ 和 $r$ 为频道编号范围,$x$ 为查询的信号阈值。
### 输出格式
对于每个查询操作,输出一行,表示编号范围 $[l, r]$ 内信号值大于或等于 $x$ 的频道数量。
### 样例输入
```
5
1 1 5 3
2 1 3 2
1 3 5 -1
2 2 7 3
1 1000000000 1000000000 5
```
### 样例输出
```
3
1
```
### 样例说明
首先,将频道 $1$ 到 $5$ 的信号值加 $3$,所以频道 $1$ 到 $5$ 的信号值变为 $3$。
接下来的查询是查找频道 $1$ 到 $3$ 的信号值大于或等于 $2$ 的频道数量,所以输出 $3$。
然后将频道 $3$ 到 $5$ 的信号值减 $1$,频道 $3$ 到 $5$ 的信号值变为 $2$。
接下来的查询是查找频道 $2$ 到 $7$ 的信号值大于或等于 $3$ 的频道数量,所以输出 $1$。
最后的操作将编号为 $1000000000$ 的频道信号值增加 $5$,但没有关于这个频道的查询操作。
### 测评数据规模
$1 \leq Q \leq 100$,$1 \leq l \leq r \leq 10^9$,$-10^4 \leq v \leq 10^4$,$1 \leq x \leq 10^4$。