题目描述
现在,她需要给她自己和其他3个伙伴安排房间。在同一直线上有N间房子(2<=N<=10^5),每间房子有一个唯一的位置(即X坐标)Xi。
(0<=Xi<=10^9)。为了方便交流,请你写一个程序,安排4间房子,使它们的最远距离最短。
输入描述
第一行:一个正整数N
第二行:N个正整数,Xi,空格隔开
输出描述
最短的最远距离
样例输入
7
1 7 4 20 13 2 11
样例输出
3(选择1、2、4、7)
数据范围及提示
这个。就是二分。
设f(x)为最远距离为x时能否安排4间房子
这个函数当然有单调性,所以,果断二分搜索x。
错误理解:不是寻找坐标最小的,而是寻找x之差最小的
错误代码:
#include
using namespace std;
#include
#include
int p[100100];
int n;
int cmp(const int &a,const int &b)
{
}
int main()
{
}
正确代码:
方法一:贪心:全搜索法:
#include
using namespace std;
#include
#include
#include
int p[100100];
int n;
int remax(int a,int b)
{
}
int main()
{
}