编程题
## 问题描述
小 $e$ 在上蓝桥云课时老师提出这样一个问题,但是他不会做,你能帮帮他吗。
给定一个长度为 $n$ 的数组 $a$ 和 $q$ 次询问,每次询问有两种操作:
* $1, l, r, x$:给区间 $[l, r]$ 都加上 $x$。
* $2, l, r,x $:查询区间 $[l, r]$ 中比 $x$ 小的元素的个数。
对于每次操作 $2$,输出一个整数表示结果。
### 输入格式
第一行一个整数 $n(1 \le n \le 10^5)$。
第二行 $n$ 个整数表示数组 $a(-10^9 \le a_i \le 10^9)$。
第三行一个整数 $q(1 \le q \le 10^5)$。
接下来 $q$ 行,每行一个操作 $op, l, r, x(op \in \lbrace1, 2\rbrace, 1\le l \le r \le n, -10^9 \le x \le 10^9)$。
### 输出格式
对于每次操作 $2$,输出结果。
### 样例输入
```text
5
1 2 3 4 5
4
2 1 3 2
2 2 4 4
1 3 3 2
2 1 5 5
```
### 样例输出
```text
1
2
3
```