#1279. 数列分块入门 2

数列分块入门 2

描述

给定一个长度为 n 的数列和 n 个涉及区间加法和询问区间内小于某个值 x 的元素个数的操作。

输入

  • 第一行包含一个整数 n

  • 第二行包含 n 个整数,其中第 i 个整数表示为 a_i,用空格分隔。

  • 接下来的 n 行表示查询。每行包含四个整数 optlrc,用空格分隔。

    如果 opt = 0,表示将位于 [l, r] 区间的所有数字都加上 c

    如果 opt = 1,表示查询 [l, r] 区间中小于 c^2 的数字的个数。

输出

对于每次查询,输出一行包含一个整数,表示答案。

样例

输入

4
1 2 2 3
0 1 3 1
1 1 3 2
1 1 4 1
1 2 3 2

输出

3
0
2

限制

对于100%的数据,1 ≤ n ≤ 50000,且**-2^31 ≤ c, others, ans ≤ 2^31-1**。