#XMOJ11396. 蛇的日光浴

蛇的日光浴

说明

时间限制:1 Sec 内存限制:256 MB 输入文件snake.in 输出文件snake.out

在 315 国中央的群山之中,有一片大小为 $W \times H$ 的矩形山谷。

山谷里栖息着 $2(W+H)$ 条蛇,每条蛇都在山谷的边界上筑巢生活。

蛇是爬行动物,会在白天出来晒太阳。

但这些蛇十分胆小,一旦碰到任何东西就会立刻缩回巢穴。

接下来会给出 $N$ 次操作。

第 $i$ 次操作中,位于 $(X_i,Y_i)$ 处巢穴的蛇会从巢穴向外伸出长度为 $L_i$ 的身体。

蛇的身体足够长,不会完全离开巢穴。

如果两条蛇的身体发生碰撞,两条蛇都会立刻停止当前动作并缩回巢穴。

请你求出所有操作处理完毕后,每条蛇从巢穴伸出的身体长度之和,并输出这个总和。


补充说明:

初始时所有蛇都完全缩在巢穴中。

蛇伸出身体时,一定朝向山谷内部。

山谷边界的每个整数坐标点恰好有且只有一条蛇。

操作按从上到下的顺序依次处理。

输入格式

第一行给出三个整数 $H,W,N$。

接下来 $N$ 行,每行给出三个整数 $X_i,Y_i,L_i$。

输出格式

输出所有蛇当前伸出身体的长度之和。

样例

样例 1

3 5 4
2 0 2
4 4 3
0 2 3
0 2 1

4

样例说明:

首先,第一次操作让位于 (2,0)(2,0) 的蛇将身体从 (2,0)(2,0) 伸到 (2,2)(2,2)

接着,第二次操作让位于 $(4,4)$ 的蛇将身体从 $(4,4)$ 伸到 $(4,1)$。

然后,第三次操作让位于 $(0,2)$ 的蛇试图将身体从 $(0,2)$ 伸到 $(3,2)$,但在中途 $(2,2)$ 处与第一条蛇相撞,于是两条蛇都缩回巢穴。

最后,第四次操作让位于 $(0,2)$ 的蛇将身体从 $(0,2)$ 伸到 $(1,2)$。

因此,从 $(4,4)$ 伸到 $(4,1)$ 的蛇长度为 $3$,从 $(0,2)$ 伸到 $(1,2)$ 的蛇长度为 $1$,总和为 $4$。

样例 2

2 2 3
1 3 2
3 2 1
3 2 1

0

样例说明:

如果对已经伸出身体的蛇再次进行操作,它会继续延长身体。

若因此与其他蛇相撞,同样会缩回巢穴。

样例 3

10 10 1
0 1 100

0

样例说明:

如果蛇的身体一直延伸到对面边界,会撞到对面巢穴中的蛇,因此会缩回巢穴。

数据范围

对于 20% 的数据,$W,H \le 10$,$N \le 100$,$L_i \le 10$。

对于 40% 的数据,$W,H \le 1000$,$N \le 1000$,$L_i \le 1000$。

对于 60% 的数据,$W,H \le 10^5$,$N \le 100$,$L_i \le 10^5$。

对于 100% 的数据,$1 \le W,H \le 10^9$,$1 \le N \le 10^5$,$1 \le L_i \le 10^9$。

对于 100% 的数据,满足以下条件之一:

  - $1 \le X_i \le W$ 且 $Y_i=0$ 或 $Y_i=H+1$

  - $1 \le Y_i \le H$ 且 $X_i=0$ 或 $X_i=W+1$

注:$(X_i,Y_i)$ 一定是 $(0,Y_i),(W+1,Y_i),(X_i,0),(X_i,H+1)$ 中的一种,位于山谷外侧。

山谷内部为 $(1,1)$ 到 $(W,H)$。