P14382 [JOISC 2017] 开荒者 / Cultivation

题目描述

在 21XX 年,IOI 星球的居民计划移民至一颗新发现的星球。 这颗新星球上有一片田地,它是一个由 $R$ 行和 $C$ 列组成的矩形网格。列的方向与南北方向平行,行的方向与东西方向平行。从北向南数第 $i$ 行、从西向东数第 $j$ 列的格子被称为格子 $(i, j)$。田地的西北角是格子 $(1, 1)$,东南角是格子 $(R, C)$。每年,IOI 星球的居民都会选择吹过田地的风的方向。风的方向可以是东、西、南或北之一。 为了在新星球上从事农业,他们将在田地的每个格子上种植“JOI 草”。在移民第一年的春季,田地中 $N$ 个格子已种有 JOI 草。 JOI 草的覆盖范围会随风扩展。每年夏季,JOI 草的种子会被风吹向居民选定的方向。种子会向风的方向移动一个格子并落地。如果种子落在一个没有 JOI 草的格子上,那么该格子将在下一年春季长出 JOI 草。一旦一个格子长出 JOI 草,它在未来将一直保持有 JOI 草。 我们希望计算:如果适当调整风的方向,使田地中所有格子都长出 JOI 草所需的最少年数。 **任务** 编写一个程序,计算在适当调整风的方向的前提下,使田地中所有格子都长出 JOI 草所需的最少年数。

输入格式

从标准输入读取以下数据: - 第一行包含两个由空格分隔的整数 $R$、$C$。表示田地是一个 $R$ 行 $C$ 列的矩形网格。 - 第二行包含一个整数 $N$,表示在移民第一年春季,田地中已有 JOI 草的格子数。 - 接下来的 $N$ 行中,第 $i$ 行($1 \le i \le N$)包含两个由空格分隔的整数 $S_i$、$E_i$。表示格子 $(S_i, E_i)$ 在移民第一年春季已种有 JOI 草。

输出格式

向标准输出写入一行。该行输出包含在适当调整风的方向的前提下,使田地中所有格子都长出 JOI 草所需的最少年数。

说明/提示

### 样例 1 解释 在样例输入 1 中,以下格子在移民第一年的春季已种有 JOI 草。 ``` x 0 x 0 x x 0 x x x x x ``` 新星球上的田地;标有‘0’的格子在移民第一年的春季已种有 JOI 草。 在本样例输入中,若我们为前三年选择的风向依次为西、南、南,则三年后的春季所有格子都将长出 JOI 草。下表中的数字描述了每个格子在春季首次长出 JOI 草的年份。这是所需的最少年数。 ``` 1 0 1 0 2 1 0 2 3 2 2 3 ``` ### 数据范围 所有输入数据满足以下条件: - $1 \le N \le 300$。 - $1 \le R \le 1\,000\,000\,000$。 - $1 \le C \le 1\,000\,000\,000$。 - $1 \le S_i \le R$($1 \le i \le N$)。 - $1 \le E_i \le C$($1 \le i \le N$)。 - 在移民第一年的春季,田地中至少存在一个没有 JOI 草的格子。 - $(S_i, E_i) \ne (S_j, E_j)$($1 \le i < j \le N$)。 ### 子任务 共有 6 个子任务。每个子任务的得分及附加约束如下: **子任务 1 [5 分]** - $R \le 4$。 - $C \le 4$。 **子任务 2 [10 分]** - $R \le 40$。 - $C \le 40$。 **子任务 3 [15 分]** - $R \le 40$。 **子任务 4 [30 分]** - $N \le 25$。 **子任务 5 [20 分]** - $N \le 100$。 **子任务 6 [20 分]** 无额外限制。 翻译由 Qwen3-235B 完成