照亮街道
#include<bits/stdc++.h>
#include<algorithm>
using namespace std;
int main( )
{
int n,L;
cin>>n>>L;
vector<double>nums;
double ans=0;//为什么设置ans=-1会报错?
double tmp;
for(int i=0;i<n;i++)
{
cin>>tmp;
nums.push_back(tmp);
}
sort(nums.begin(),nums.end());
for(int i=0;i<n-1;i++)
{
/*int dist=nums[i+1]-nums[i];
if(dist>ans)
ans=dist;*/
ans=max(ans,nums[i+1]-nums[i]);
}
//还需要注意排序后最两边的路灯和路面之间的距离
ans=max(ans/2,max(L-nums[n-1],nums[0]));
printf("%.2lf\n",ans);
return 0;
}
总结
属于简单题,但是容易忽略数据类型为double,而且max()函数使用时两个参数的类型应该一致,否则会报错;注意最两边的路灯和路的两端之间的距离也应该考虑。