给定 n,m,A,维护由序列构成的序列 a1,⋯,an,初始 ai 包含一个元素 A;
共 m 次操作:
修改操作:给定 l,r,x,对 l≤i≤r,在序列 a−i 前面插入元素 x;
查询操作:给定 l,r,查询 ∑ri=lF(ai,A);
其中 F((x1,⋯,xn),0)=0;
对 k>0,F((x1,⋯,xn),k)=F((x2,⋯,xn),⌊kx1⌋)+1 。
输入格式
第一行三个整数 $n, m, A¥;
接下来 m 行,每行 1 l r x
表示一个修改操作,或 2 l r
表示一个查询操作;
输出格式
对每个查询操作,输出一行,表示答案。
样例数据
样例 1 输入
5 20 10
1 4 4 166348285
2 2 5
2 1 5
1 1 2 10
1 4 4 3
1 4 5 6
2 5 5
1 5 5 1
1 2 3 1
2 5 5
2 5 5
2 3 4
2 3 3
2 4 5
2 4 4
1 2 5 5
1 5 5 9
1 1 4 5
2 5 5
2 1 4
样例 1 输出
4
5
2
3
3
4
2
5
2
2
8
样例 2 ~ 5
见下发文件。
子任务
注意,使用捆绑测试。
对于 25% 的数据,满足 n,m≤100。
对于 50% 的数据,满足 n,m≤105。
对于另外 25% 的数据,满足 x≠1。
对于 100% 的数据,满足 1≤n,m≤5×105,1≤A,x≤109,1≤l≤r≤n。