序列游戏
有一个长度为 n 的整数序列 A,初始时所有元素均为 0。按照给定顺序执行 m 次操作,操作分为以下两种:
- 1 l r a b:对于每个 i∈[l,r],将 Ai 覆盖为
Ai=(a×(i−l+1))modb。
- 2 l r:求出并输出
i=l∑rAi。
输入格式
第一行包含两个整数 n,m。
接下来 m 行,每行描述一次操作,格式为 1 l r a b 或 2 l r。
输出格式
对于每次类型为 2 的操作,输出一行一个整数,表示对应区间内所有元素之和。
样例输入
6 3
2 1 6
1 1 5 1 2
2 1 6
样例输出
0
3
数据范围
- 1≤n≤109;
- 1≤m≤5×104;
- 1≤l≤r≤n;
- 0≤a≤106;
- 1≤b≤106。
来源与许可
本题题面与测试数据整理自 BZOJ。
样例 1
输入
6 3
2 1 6
1 1 5 1 2
2 1 6
输出
0
3