#P14685. [Bulgarian2021]Sets
[Bulgarian2021]Sets
题目描述
Alice 和 Bob 是朋友,他们有 N 个点 (X_i, Y_i),平时经常拿这些点来做游戏。可惜最近两人都很忙,没法一起玩了,于是他们决定把这些点划分成两个集合:
A交给 Alice;B交给 Bob;
并且两个人都必须至少得到一个点。
Alice 不喜欢“太宽”的集合,而 Bob 不喜欢“太高”的集合。这里定义:
- 一个集合的宽度,是其中最右点与最左点的横坐标之差;
- 一个集合的高度,是其中最高点与最低点的纵坐标之差。
两人希望最小化:
- 集合
A的宽度; - 加上集合
B的高度。
由于点很多,他们不容易自己找到最优划分方案。请你编写程序 sets,求出这个最小可能值。
输入格式
第一行输入一个整数 N,表示点的个数。
接下来 N 行,每行输入两个整数 X_i 和 Y_i,表示第 i 个点的坐标。
为方便起见,输入保证点按 X 非降序给出,即:
X_i <= X_{i+1}
输出格式
输出一行一个非负整数,表示所求最小值。
数据范围
2 <= N <= 2 × 10^6
0 <= X_i, Y_i <= 10^8
子任务
| 子任务 | 分值 | N <= |
|---|---|---|
| 1 | 10 | 2.5 × 10^1 |
| 2 | 8.5 × 10^2 |
|
| 3 | 1.9 × 10^4 |
|
| 4 | 20 | 9.0 × 10^4 |
| 5 | 25 | 6.1 × 10^5 |
| 6 | 2.0 × 10^6 |
样例 1
输入 1
11
1 28
5 24
11 14
13 43
19 29
23 6
28 25
36 51
39 32
44 29
50 21
输出 1
36
样例解释 1
一种最优划分方案是:将编号为 2, 3, 5, 7, 8 的点放入 A,其余点放入 B(这里编号按 0 到 N-1 计)。
此时:
A的宽度为39 - 11 = 28;B的高度为29 - 21 = 8。
所以答案为:
28 + 8 = 36