题目描述
给定x轴上n个点,找其中的一对点,使得在n个点的所有点对中,该点对的距离最小。严格地说,最接近点对可能多于1对,为了简单起见,这里只限于找其中的一对。
输入
输入第一行为点的个数n(2≤n≤60 000);接下来n个数字,表示n个点在x轴上的位置。
输出
输出仅一行,为一个实数,表示最接近点对的距离。
AC代码
#include <bits/stdc++.h>
using namespace std;
const int inf=0x3f3f3f3f;
double s[100];
double mn;
int main(){
int n;
while(~scanf("%d",&n)){
for(int i=0;i<n;i++){
scanf("%lf",s+i);
}
sort(s,s+n);
mn=inf;
for(int i=0;i<n-1;i++){
mn=s[i+1]-s[i]>mn?mn:s[i+1]-s[i];
}
cout<<mn;
break;
}
return 0;
}
运行结果
(暂不展示)
有一天偶遇佛祖,佛祖说:我可以给一个愿望。 我说:那让每个赞我的人健康快乐。 佛祖说:可以,不过只有四天。 我说:好,就春天,夏天,秋天,冬天。 佛祖说:不行,就三天。 我说:好,就昨天,今天,明天。 佛祖说:不行,就二天。 我说:好,就白天,黑天。 佛祖说:不行,就一天。 我说;好,就每一天。 佛祖哭着说好,就让赞你的人开心健康每一天吧。