AT_abc370_d [ABC370D] Cross Explosion

题目描述

有一个网格,网格中有 $H$ 行和 $W$ 列。让 $(i, j)$ 表示从上往下第 $i$ 行,从左往上第 $j$ 列的单元格。 最初,每个单元格中都有一面墙。 按照下面给出的顺序处理 $Q$ 个查询后,求剩余墙的数量。 在第 $q$ 次查询中,我们给出了两个整数 $R_q$ 和 $C_q$ 。 您在 $(R_q, C_q)$ 处放置了一枚炸弹来摧毁墙壁。结果会发生以下过程。 - 如果在 $(R_q, C_q)$ 处有一堵墙,则摧毁这堵墙并结束进程。 - 如果 $(R_q, C_q)$ 处没有墙壁,则摧毁从 $(R_q, C_q)$ 向上、向下、向左、向右观察时出现的第一面墙壁。更确切地说,以下四个过程是同时进行的: - 如果存在一个 $i \lt R_q$ ,使得在 $(i, C_q)$ 处有一堵墙,而在所有 $i \lt k \lt R_q$ 的 $(k, C_q)$ 处都没有墙,则摧毁 $(i, C_q)$ 处的墙。 - 如果存在一个 $i \gt R_q$ ,使得在 $(i, C_q)$ 处有一堵墙,而在所有 $R_q \lt k \lt i$ 的 $(k, C_q)$ 处都没有墙,则破坏 $(i, C_q)$ 处的墙。 - 如果存在一个 $j \lt C_q$ ,使得在所有 $j \lt k \lt C_q$ 中, $(R_q, j)$ 处有一堵墙,而 $(R_q, k)$ 处没有墙,则破坏 $(R_q, j)$ 处的墙。 - 如果存在一个 $j \gt C_q$ ,使得在 $(R_q, j)$ 处有一堵墙,而在所有 $C_q \lt k \lt j$ 的 $(R_q, k)$ 处没有墙,则破坏 $(R_q, j)$ 处的墙。

输入格式

第一行 $3$ 个整数 $H,W,Q$。 接下来每行 $2$ 个整数 $R,C$,表示在坐标 $R,C$ 出放置了一枚炸弹。

输出格式

输出一个整数,表示最后剩下多少堵墙。

说明/提示

- $1 \leq H, W$ - $H \times W \leq 4 \times 10^5$ - $1 \leq Q \leq 2 \times 10^5$ - $1 \leq R_q \leq H$ - $1 \leq C_q \leq W$ - 所有输入值均为整数。 Translate by DeepL,Manually verified.