CF390E Inna and Large Sweet Matrix
题目描述
Inna 非常喜欢糖果。这就是为什么她想和 Dima 以及 Sereja 一起玩“糖果矩阵”游戏的原因。但 Sereja 是个身材魁梧的人,所以这个游戏对他来说太小了。Sereja 建议玩“巨型糖果矩阵”游戏。
“巨型糖果矩阵”游戏的场地是一个 $n \times m$ 的矩阵。我们将矩阵的行编号为 $1$ 到 $n$,列编号为 $1$ 到 $m$。我们用 $(i,j)$ 表示第 $i$ 行第 $j$ 列的单元格。每个单元格可以包含多个糖果,初始时所有单元格都是空的。游戏共进行 $w$ 次操作,每次操作有以下两种事件之一:
1. Sereja 会选择五个整数 $x_{1}, y_{1}, x_{2}, y_{2}, v$($x_{1} \leq x_{2}, y_{1} \leq y_{2}$),并向所有满足 $x_{1} \leq i \leq x_{2}, y_{1} \leq j \leq y_{2}$ 的单元格 $(i, j)$ 中各加入 $v$ 颗糖果。
2. Sereja 会选择四个整数 $x_{1}, y_{1}, x_{2}, y_{2}$($x_{1} \leq x_{2}, y_{1} \leq y_{2}$)。然后他让 Dima 计算所有满足 $x_{1} \leq i \leq x_{2}, y_{1} \leq j \leq y_{2}$ 的单元格的糖果总数,让 Inna 计算所有 $(p, q)$ 满足如下逻辑条件的单元格中糖果的总数:($p < x_{1}$ 或 $p > x_{2}$)且($q < y_{1}$ 或 $q > y_{2}$)。最后,Sereja 会记录 Dima 计算的数与 Inna 计算的数之差(即 $D - I$)。
然而,Sereja 的矩阵实在太大了,Inna 和 Dima 无法应对计算。请帮助他们!
输入格式
第一行包含三个整数 $n$,$m$ 和 $w$($3 \leq n, m \leq 4 \cdot 10^{6};\ 1 \leq w \leq 10^{5}$)。
接下来的 $w$ 行描述了游戏的操作。
- 描述第一种事件的行包含 6 个整数:$0, x_{1}, y_{1}, x_{2}, y_{2}, v$($1 \leq x_{1} \leq x_{2} \leq n; 1 \leq y_{1} \leq y_{2} \leq m; 1 \leq v \leq 10^9$)。
- 描述第二种事件的行包含 5 个整数:$1, x_{1}, y_{1}, x_{2}, y_{2}$($2 \leq x_{1} \leq x_{2} \leq n - 1; 2 \leq y_{1} \leq y_{2} \leq m - 1$)。
保证至少会有一次第二种类型的操作。保证单次操作添加的糖果不超过 $10^{9}$。
请注意,数据范围极大,请使用高效的数据结构。最大数据将在预测试中出现。
输出格式
对于每一个第二种类型的操作,输出一行整数,即 Dima 计算得到的糖果和与 Inna 计算得到的糖果和之差。
说明/提示
样例说明:第一次操作后,矩阵如下:
```
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$。
由 ChatGPT 5 翻译