CF217A Ice Skating

题目描述

Bajtek 正在学习滑冰。他还是个初学者,所以他唯一的移动方式是从一个雪堆向北、东、南或西的方向蹬出去,然后一直滑行直到停在下一个雪堆上。他发现这样一来,有些雪堆之间无法通过一系列滑行互相到达。现在他希望再堆一些雪堆,使得可以从任意一个雪堆到达任意另一个雪堆。他想请你帮忙找出最少需要再堆多少个雪堆。 我们假设 Bajtek 只能在整数坐标上堆雪堆。

输入格式

输入的第一行包含一个整数 $n$($1 \le n \le 100$),表示雪堆的数量。接下来的 $n$ 行,每行包含两个整数 $x_i$ 和 $y_i$($1 \le x_i, y_i \le 1000$),表示第 $i$ 个雪堆的坐标。 注意,北方与 $Oy$ 轴的正方向一致,东方与 $Ox$ 轴的正方向一致。所有雪堆的位置均不相同。

输出格式

输出使得 Bajtek 能从任意一个雪堆到达任意另一个雪堆最少还需要增加的雪堆数量。

说明/提示

由 ChatGPT 5 翻译