思路:
我们发现对于一个点,它到每个区间端点的距离最小最好,那如果我们选择了一个区间,它里面的点到所有区间端点的距离都是相同的并且是最小的,那就是答案。
而对于这个区间,我们发现它的边界一定是区间端点,而要使得它的答案最小,肯定是将端点平均分配到区间两端,所以就是中间的两个端点。
c o d e code code
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
const int MAXN = 1e5 + 10;
int n, a[MAXN * 2];
int main() {
freopen("linear.in", "r", stdin);
freopen("linear.out", "w", stdout);
scanf("%d", &n);
for(int i = 1; i <= n; i ++) scanf("%d%d", &a[i * 2 - 1], &a[i * 2]);
n *= 2;
sort(a + 1, a + 1 + n);
printf("%d %d", a[n / 2], a[n / 2 + 1]);
return 0;
}