编程题
### 问题描述 帆帆是宇宙知名的大魔君,他的梦想是——占领整个宇宙!然而宇宙并不是那么好占领的,帆帆只能通过以下规律去占领宇宙: 有一个集合 $A$,表示帆帆占领的星球,初始只包含帆帆的大本营,也就是原点 $(0, 0)$。 我们定义方向向量集:$D = \\{(0, 1),(0, −1),(1, 0),(−1, 0)\\}$。帆帆每次战争可以选择四个方向之一 $d \in D$,记 $A_d = \\{x|x = y + d, y ∈ A\\}$,然后向这个方向扩张,也就是令 $A \leftarrow A \cup A_d$。 例如,$A = \\{(0, 0),(0, 1),(1, 0),(1, 1)\\}, d = (−1, 0)$,则 $A_d = \\{(−1, 0),(−1, 1),(0, 0),(0, 1)\\}$。操作后点集 $A =\\{(−1, 0),(−1, 1),(0, 0),(0, 1),(1, 0),(1, 1)\\}$。 帆帆想知道,自己能不能**完全**占领宇宙。也就是说,给出一个点集 $B$,求能否通过操作使得 $A = B$。如果可能,输出所需的最少战争次数。 ### 输入格式 输入数据包含 $n + 1$ 行。 输入第一行包含一个正整数 $n$,为宇宙中星球的个数,也就是点集 $B$ 的大小。 接下来 $n$ 行,每行包含两个由空格隔开的整数 $x_i , y_i$,代表 $B$ 中的一个星球 $(x_i , y_i)$。保证输入的所有点各不相同。 ### 输出格式 如果帆帆不能**完全**占领宇宙,输出 $-1$。否则输出帆帆所需的最小操作次数。 ### 样例输入 ```text 6 0 0 -1 0 0 -1 1 -1 -1 -1 1 0 ``` ### 样例输出 ```text 3 ``` ### 评测数据规模 对于 $100\\%$ 的评测数据,$1 \leq n \leq 100$,$−100 \leq x_i , y_i \leq 100$。
查看答案
赣ICP备20007335号-2