#arc0244. [arc024_4]バス停
[arc024_4]バス停
问题文
高桥国的高桥王为了改善国内交通便利性,决定设置一些公交车站。高桥国只有东西向和南北向的两种道路。从某一标准点开始,东方距离为 公里的位置设置了第 条南北向道路,北方距离为 公里的位置设置了第 条东西向道路。我们用 表示第 条南北向道路和第 条东西向道路的交叉点。由于道路是无限长的,所以任意两条相交的道路都会在某处交叉。公交车站只能设置在交叉点上,并且同一个交叉点上最多只能设置一个公交车站。
现在已经设置了 个公交车站。然而,高桥王发现了一个重大错误。道路太窄,公交车无法转弯。换句话说,每条线路只能沿着东西或者南北的一个方向行驶。这样一来,会出现一些只能通过公交换乘才能到达的公交车站,非常不便。因此,我们需要新增一些公交车站,通过在任意 个公交车站之间换乘公交车来实现移动。另外,只能在公交车站进行换乘。而且,为了避免换乘路线过长,我们需要设置这样的公交车站:对于任意 个公交车站 ,它们之间的总移动距离等于公交车站之间的曼哈顿距离。也就是说,对于任意 个公交车站 ,要求存在一条换乘路径,使得总移动距离为 公里。
由于预算原因,最多只能设置 个公交车站,也就是说,最多只能新增 个公交车站。在这个范围内,当满足上述条件时,请找到新增公交车站的位置。如果有多个解,则输出任意一个解即可。
输入
输入以以下格式从标准输入中给出。
:
- 第 行是一个整数 ,表示已经设置的公交车站的数量。
- 第 行到第 行,分别给出了每个公交车站所在的位置的两个整数 和 。表示第 个公交车站位于交叉点 处。
- 对于 ,有 。
- 至少存在一个解。
部分分
本问题设置了部分分。
- 当满足 的所有测试用例时,得到 分。
- 当满足 的所有测试用例时,额外得到 分。总计得分为 分。
输出
请以以下格式输出新增公交车站的位置:
:
- 第 行是一个整数 ,表示要新增的公交车站的数量。
- 第 行到第 行,分别给出了每个新增公交车站的位置的两个整数 和 。表示新增的第 个公交车站位于交叉点 处。
- 对于任意 ,有 。
- 新增公交车站的位置不能与已经设置的公交车站的位置重叠。
- 对于新增的公交车站和已经存在的公交车站,对于任意 个车站之间,最短距离必须等于曼哈顿距离。
示例1
2
1 1
2 2
输出示例1
1
1 2
通过公交车站 ,公交车只能到达 或者 (, 是任意整数)。同样,通过公交车站 ,公交车只能到达 或者 。新增公交车站 可以实现任意两个车站之间的互相出行。注意,也可以选择新增公交车站 ,或者同时新增这两个车站。
示例2
4
1 1
2 2
3 4
4 3
输出示例2
4
1 2
3 2
3 3
4 4
请注意,新增的公交车站之间的最短路径也必须满足曼哈顿距离。
示例3
7
2 4
3 2
4 6
5 1
6 5
7 3
8 7
输出示例3
15
3 6
8 5
2 2
7 5
2 5
6 6
3 1
5 6
6 2
6 1
7 1
7 2
2 3
6 7
2 6