8005 - 方格染色

通过次数

2

提交次数

2

时间限制 : 1 秒
内存限制 : 512 MB

有一个 n 列 m 行的棋盘,共 n*m 个方格,我们约定行、列均从 1 开始标号,且第 i 列、第 j 行的方格坐标记为 (i, j)。初始时,所有方格的颜色均为白色。现在,你要对这个棋盘进行 q 次染色操作。
染色操作分为三种,分别为:
1、将一条横线染为黑色。具体地说,给定两个方格 (x1, y1) 和 (x2, y2),保证 x1 <= x2,y1 = y2,将这两个方格之间的所有方格(包括这两个方格)染为黑色。
2、将一条竖线染为黑色。具体地说,给定两个方格 (x1, y1) 和 (x2, y2),保证 x1 = x2,y1 <= y2,将这两个方格之间的所有方格(包括这两个方格)染为黑色。
3、将一条斜线染为黑色。具体地说,给定两个方格 (x1, y1) 和 (x2, y2),保证 x1 <= x2,x2 - x1 = y2 - y1,将这两个方格之间斜线上所有形如 (x1 + i, y1 + i)(0 <= i <= x2 - x1)的方格染为黑色。这种染色操作发生的次数不超过 5 次。
现在你想知道,在经过 q 次染色后,棋盘上有多少个黑色的方格。

输入

输入的第一行包含一个整数 c,表示测试点编号。c = 0 表示该测试点为样例。
输入的第二行包含三个正整数 n, m, q,分别表示棋盘的列、行和染色操作的次数。
接下来 q 行,每行输入五个正整数 t, x1, y1, x2, y2,其中 t = 1 表示第一种染色操作,t = 2 表示第二种染色操作,t = 3 表示第三种染色操作。x1, y1, x2, y2 表示染色操作的四个参数。

输出

输出一行包含一个整数,表示棋盘上被染为黑色的方格的数量。

样例

输入

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

输出

13

提示

在这组样例中,我们一共做了三次染色操作,如下图所示。
第一次操作时,将 (1, 3), (2, 3), (3, 3), (4, 3), (5, 3) 染为黑色。
第二次操作时,将 (3, 1), (3, 2), (3, 3), (3, 4), (3, 5) 染为黑色。
第三次操作时,将 (1, 1), (2, 2), (3, 3), (4, 4), (5, 5) 染为黑色。
【数据范围】
对于所有测试数据保证:1 <= n, m <= 10 ^ 9,1 <= q <= 10 ^ 5,1 <= x1, x2 <= n,1 <= y1, y2 <= m,且最多有 5 次第三种染色操作。
注:数据为模拟数据。

来源

NOI国赛