随着时间的流逝,人们对螺旋图案愈发着迷。他们开始在流动的光影中、在雕刻的石块上、以及在建筑物的地板中注意到它们。
起初,这些螺旋只是作为隐约的迹象出现——但不久之后,它们便在整个岛屿上随处可见。
追寻这些残留螺旋的痕迹,并恢复它们曾经揭示的形态。
方形广场的地板上刻有一个大小为 $N \times M$ 的网格。从上往下数第 $r$ 行、从左往右数第 $c$ 列的单元格记为 $(r, c)$。
最近,在这个网格上共观测到了 $K$ 个螺旋图案。
每个螺旋都以一个特定的位置为中心,并具有一定的半径。下图展示了半径分别为 0、2 和 4 的螺旋图案示例:
(为了清晰起见,图中显示了网格线;只有着色的单元格才代表实际的螺旋图案。)
对于网格中的每个单元格,确定有多少个螺旋图案包含该单元格。
输入格式
第一行包含三个整数 $N$、$M$ 和 $K$:分别表示网格的行数、列数以及螺旋图案的数量。
第二行包含两个整数 $p$ 和 $q$。
接下来的 $K$ 行,每行包含三个整数 $r_i$、$c_i$、$d_i$。这表示第 $i$ 个观测到的螺旋图案以单元格 $(r_i, c_i)$ 为中心,半径为 $d_i$。
数据范围
- $2 \le N \le 2000$
- $2 \le M \le 2000$
- $1 \le K \le 10^6$
- $0 \le p \le 10^6$
- $0 \le q \le 10^6$
- $0 \le d_i$ ($1 \le i \le K$)
- $d_i$ 为偶数 ($1 \le i \le K$)
- $1 \le r_i - d_i$ ($1 \le i \le K$)
- $r_i + d_i \le N$ ($1 \le i \le K$)
- $1 \le c_i - d_i$ ($1 \le i \le K$)
- $c_i + d_i \le M$ ($1 \le i \le K$)
输出格式
对于所有满足 $1 \le r \le N$ 且 $1 \le c \le M$ 的 $(r, c)$,令 $A_{rc}$ 表示包含单元格 $(r, c)$ 的螺旋图案数量。由于输出所有的 $A_{rc}$ 值会消耗大量时间,因此请输出以下单个整数:
$$\sum_{r=1}^{N} \sum_{c=1}^{M} ((r \times p) \oplus (c \times q) \oplus A_{rc})$$
其中,$\oplus$ 表示按位异或(XOR)操作。
子任务
- 子任务 1(2 分):$d_i = 0$ ($1 \le i \le K$)
- 子任务 2(7 分):$K = 1$
- 子任务 3(4 分):$p = q = 0$
- 子任务 4(6 分):$N \le 100, M \le 100, K \le 100$
- 子任务 5(27 分):$K \le 2000$
- 子任务 6(16 分):$2d_i + 1 = M$ ($1 \le i \le K$)
- 子任务 7(38 分):无附加限制。
样例
输入样例 1
11 9 3 1 2 5 6 2 7 5 4 1 1 0
输出样例 1
1063
输入样例 2
37 28 1 79 1101 14 11 8
输出样例 2
16529317
说明
螺旋图案的精确定义如下:
- 半径为 0 的螺旋图案定义为大小为 $1 \times 1$ 的单个单元格。
- 对于所有偶数 $d \ge 2$,半径为 $d$ 的螺旋图案可以通过以下方式创建:
- 准备一个大小为 $(2d + 1) \times (2d + 1)$ 的网格。
- 在网格中心涂色半径为 $d - 2$ 的螺旋图案。
- 从上述已涂色单元格的右下角单元格开始,向右再涂色两个单元格。
- 从最后一个涂色的单元格开始,依次向上涂色 $2d - 2$ 个单元格,向左涂色 $2d$ 个单元格,向下涂色 $2d$ 个单元格,向右涂色 $2d$ 个单元格。
使用这种方法,一个 $d = 4$ 的螺旋图案如下所示: