题目描述
Inna 非常喜欢糖果。这就是为什么她想和 Dima 和Sereja一起玩“糖果矩阵”游戏。但是 Sereja 是一个大个子,所以这个游戏对他来说太小了。 Sereja 建议玩“巨无霸糖果矩阵”游戏。
“巨无霸糖果矩阵”游戏场地是一个n×m 矩阵。让我们将矩阵的行从 1 编号到 n,列从 1 编号到 m。我们将第 i 行第 j 列的单元格表示为 (i, j) 。矩阵的每个单元格可以包含多个糖果,最初所有单元格都是空的。游戏进行 w 次操作,在每次操作中会发生以下两种事件之一:
1、Sereja 选择五个整数 x1,y1,x2,y2,v(x1≤x2,y1≤y2) 并向每个矩阵单元格 (i,j)(x1≤i≤x2;y1≤j≤y2) 添加 v 个糖果。
2、Sereja 选择四个整数 x1,y1,x2,y2,v(x1≤x2,y1≤y2) ,然后他要求 Dima 计算单元格中糖果(i,j)(x1≤i≤x2;y1≤j≤y2) 的总数,并要求 Inna 计算满足以下逻辑条件的矩阵单元格 (p,q) 中糖果的总数:(p<x1 OR p>x2) AND (q<y1 OR q>y2)。最后, Sereja 要求写下 Dima 计算的数字和 Inna 计算的数字之间的差值。
不幸的是,Sereja 的矩阵非常庞大。这就是为什么 Inna 和 Dima 无法应付计算。帮助他们!
输入格式
输入的第一行包含三个整数 n, m和 w 。
接下来的 w 行描述了游戏中进行的操作。
描述第一类型事件的行包含 6 个整数:0,x1,y1,x2,y2 和 v ( 1≤x1≤x2≤n; 1≤y1≤y2≤m; 1≤v≤109)。
描述第二类型事件的行包含 5 个整数:1,x1,y1,x2,y2 ( 2≤x1≤x2≤n−1; 2≤y1≤y2≤m−1)。
保证第二类型移动至少发生一次。保证单次操作不会添加超过 109 个糖果。
请注意,约束条件非常大,因此请使用最佳数据结构。最大测试将在预测试中进行。
输出格式
对于每个第二类型操作,输出一行单个整数 ,表示Dima 和 Inna 数字之间的差值。
4 5 5
0 1 1 2 3 2
0 2 2 3 3 3
0 1 5 4 5 1
1 2 3 3 4
1 3 4 3 4
2
-21
样例分析
第一次操作后,矩阵如下所示:
22200
22200
00000
00000
第二次操作后,矩阵如下所示:
22200
25500
03300
00000
第三次操作后,矩阵如下所示:
22201
25501
03301
00001
对于第四次操作, Dima 的总和为 5+0+3+0=8, Inna 的总和为 4+1+0+1=6。查询的答案等于 8−6=2。对于第五次查询, Dima 的总和为0, Inna 的总和为 18+2+0+1=21。查询的答案为 0−21=−21。
数据范围与提示
对于 100% 的数据:3≤n,m≤4×106; 1≤w≤105。